我想让我的用户可以使用addthis小部件,但我想延迟加载它,以便我的页面尽快加载。但是,在通过脚本标记然后通过我的延迟加载方法尝试之后,它似乎只能通过脚本标记工作。在混淆的代码中,我看到一些东西看起来像是依赖于 DOMContentLoaded 事件(至少对于 Firefox 而言)。
由于 DOMContentLoaded 事件已触发,因此小部件无法正确呈现。该怎么办?
我可以只使用脚本标记(较慢)......或者我可以(以跨浏览器方式)触发 DOMContentLoaded (或等效)事件吗?我有一种感觉,这可能是不可能的,因为我相信(如 jQuery)对内容就绪事件有多个测试,因此必须发生多个模拟事件。
尽管如此,这是一个有趣的问题,因为我已经看到几个小部件现在假设您通过静态脚本标签包含他们的东西。如果他们编写的代码对关注速度的开发人员更有用,那就太好了,但在那之前,是否有解决方法?和/或我的任何假设是否错误?
编辑: 因为这个问题的第一个答案似乎错过了我的问题的重点,所以我想澄清一下情况。
这是关于一个特定的问题。我不是在寻找另一个延迟加载脚本或检查是否加载了某些依赖项脚本。具体来说,这个问题涉及
- 您无法控制的外部小部件,可能会或可能不会被混淆
- 延迟外部小部件的加载,直到需要它们为止,或者至少直到基本上在加载其他所有内容(包括其他延迟元素)之后
- b/c 小部件的编写方式,排除了现有的典型延迟加载范例
虽然它很深奥,但我已经看到它发生在几个小部件上 - 小部件开发人员假设您只是愿意在页面底部添加另一个脚本标签。我希望节省这 500-1000 毫秒**,尽管雅虎、谷歌和亚马逊的大量研究表明它对您的用户体验很重要。
**我对锤头和个人经验的测试表明,在这种情况下,这将是我的积蓄。