我想让addthis小部件可供我的用户使用,但我想延迟加载它,以便尽可能快地加载我的页面。但是,通过脚本标记尝试后,然后通过我的延迟加载方法,它似乎只能通过脚本标记工作。在混淆代码中,我看到了一些看起来像依赖DOMContentLoaded事件的东西(至少在Firefox中)。延迟加载addthis脚本? (或延迟加载外部js内容取决于已触发的事件)
由于DOMContentLoaded事件已经触发,所以小部件无法正确呈现。该怎么办?
我可以只使用脚本标记(较慢)...或者我可以(通过跨浏览器方式)DOMContentLoaded(或等效)事件?我有一种感觉,这可能是不可能的B/C我相信(如jQuery)内容准备事件有多个测试,所以多个模拟事件将不得不发生。
尽管如此,这是一个有趣的问题b/c我已经看到一些小部件现在假设你通过静态脚本标签包含了他们的东西。如果他们编写的代码对于速度方面的开发人员更有用,那将是非常好的,但在那之前,有没有解决方法?和/或我的任何假设是否错误?
编辑: 因为这个问题的第一个答案似乎错过了我的问题,我想澄清的情况。
这是关于一个特定的问题。我不在寻找另一个懒惰的加载脚本,或者检查是否有一些依赖被加载脚本。 具体这个问题
- ,你不 拥有控制权,并可能会或可能不会 被混淆
- 延迟 外部部件的负载,直到他们 需要或至少外部部件交易,直到 一切基本上之后 已经加载包括其它递延元件
- b /所述如何 的c中的窗口小部件是书面的,排除了 现有的,典型的懒加载 范式
虽然很深奥,我已经看到了一对夫妇的小部件发生 - 在Widget开发者认为你只是愿意在的底部在另一个脚本标签扔页。我希望能够节省500-1000毫秒**,尽管雅虎,谷歌和亚马逊的众多研究表明它对用户的体验非常重要。
**我用锤头和个人经验测试表明,这将是我在这种情况下的节省。
这是一个外部的js部件。我无法控制内容。 – 2009-06-03 04:19:19
有几个部分引用DOMContentLoaded事件,它调用匿名函数&似乎处于隐藏状态的关闭状态。这是混淆的代码,所以尽管我试图弄清楚他们在DOMContentLoaded事件上做了什么,但这可能并不那么容易。我正在考虑一种不同的方法 - 试图找出它正在查找的事件并解雇它们,我想知道是否可能有一个通用解决方案 - 一些代码在浏览器的“真实”事件之后触发DOMContentLoaded事件已经开除或以其他方式触发它。 – 2009-06-03 05:07:57
取出匿名函数并在脚本中给它们一个名字。 var loadFunction = function(){/ * whatever * /} 然后从checkAndLoad()调用那些函数 – 2009-06-03 05:16:58