我正在开发使用jQuery中完全实现渐进增强网站。

例如,我添加onclick事件处理程序动态锚标记,以播放链接的MP3文件“内联”使用SoundManager类和弹出的Youtube球员的Youtube链接,通过$(文件)。就绪(函数())。

然而,如果用户点击他们,当加载页面时,他们仍然可以获得非增强版本。

我想过隐藏相关的东西(通过显示:无,或类似的东西),并将其显示在加载时,或将一个模式“加载”对话框,但两者听起来像黑客

任何更好的想法?我觉得我失去了一些东西完全明显这里。

此致

亚历

有帮助吗?

解决方案

我没有测试过这一点,但你可以尝试 live 。该想法是,你可以把你的点击处理程序的document.ready外侧,以便他们得到立即执行。由于live使用事件代表团来实现它的功能,你并不真的需要等待DOM是准备好了,而页面加载还是应该由事件处理程序捕获的所做的任何点击。

如果不工作,你可以尝试直接把JavaScript的脚本标签下方任何他们需要的绑定。这不是很漂亮,但它几乎消除问题。

其他提示

假设你已经使用良好的判断力和人民正在下降了非加强版只是因为延时太长,那么我会使用 CSS禁用控制。该CSS将加载差不多的时候了。然后使用Javascript我将切换CSS所以重新启用控件。

不过,我的第一反应是,如果在页面加载,用户可以单击它,然后你的页面或连接速度太慢。但是,如果这是很少的情况下 - 的时间不超过1% - 那么你可以,只要用户能实现他的目标耸耸肩,就是听他的音乐。我这样说是因为,一旦用户意识到了更好的体验等待半秒钟后,他通常会等待JavaScript呈现,然后单击。

我从aleemb使用CSS关于相对姿态。如果您使用CSS来禁用该控件,那么谁已禁用JavaScript或使用无障碍软件将无法使用这些控件,并未完全禁止样式表。任何人

您可以使用一个非常小的内嵌JavaScript右边的结束标记之前要真正快速隐藏通过JS的元素。如果是内联,没有加载外部资源,将是非常快的,通常速度比用户可以点击。

不过,我的的与aleemb同意,如果您的用户能够在精神上处理页面,并使其他们希望自己的JS前点击加载控制,则可能是一个更深层次的问题您的页面加载的方式。研究如何减少加载时间:压缩的图像文件,使用gzip压缩HTML / CSS / JS文件,压缩JavaScript,结合图像转换成精灵,等等

我建议以下保罗Bergantino的提醒 - 事件代表团去完全避免问题的方式。

我也有类似的问题,即事件的代表团不能做的工作 - 你可以的阅读有关此处

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top