微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – Lazy加载addthis脚本? (或延迟加载外部js内容取决于已经触发的事件)

我想为我的用户提供 addthis小部件,但是我想懒惰加载它,以便我的页面尽可能快地加载.但是,在通过脚本标记尝试之后,然后通过我的懒惰加载方法,它似乎只能通过脚本标记工作.在混淆的代码中,我看到一些看起来像是依赖于DOMContentLoaded事件(至少对于firefox).

由于DOMContentLoaded事件已被触发,所以该小部件无法正常呈现.该怎么办?

我可以使用脚本标签(较慢)…或者可以以跨浏览器方式触发DOMContentLoaded(或等效)事件?我有一种感觉,这可能是不可能的b / c我相信(像jQuery)有内容准备事件的多个测试,因此必须发生多个模拟事件.

尽管如此,这是一个有趣的问题b / c我看到几个小部件现在假设你通过静态脚本标签包括他们的东西.如果他们编写的代码对开发人员关心速度更有用,那将是很好的,但直到那时,是否有一个工作?和/或我的任何假设错误

编辑:
因为这个问题的第一个答案似乎错过了我的问题,所以我想澄清一下.

这是一个具体问题.我不是在寻找另一个懒惰的加载脚本或检查一些依赖关系是否加载脚本.具体这个问题处理

>你没有的外部小部件
控制,可能或不可能
被模糊
>延迟负载
外部小部件直到它们
需要或至少,直到
在其他事情之后
已经加载了其他延迟元素
> b / c的怎么样
该小部件是写的,排除
现有的,典型的延迟加载
范式

虽然它是深奥的,我已经看到它发生在几个小部件 – 小部件开发人员假设你只是愿意在页面底部扔另一个脚本标签.我正在寻找保存这些500-1000毫秒的**,尽管雅虎,谷歌和亚马逊的众多研究表明它对您的用户体验至关重要.

**我用锤头和个人经验的测试表明,这将是我在这种情况下的积蓄.

解决方法

最简单的解决方案是在将addthis脚本嵌入到页面中时将参数domready设置为1.这是一个例子:
<script type="text/javascript" 
src="http://s7.addthis.com/js/250/addthis_widget.js#username=addthis&domready=1">
</script>

我已经在IE,Firefox,Chrome和Safari上测试过,一切正常.有关addthis配置参数的更多信息可用here.

原文地址:https://www.jb51.cc/js/152200.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐