起初这可能看起来很奇怪,但这是我的问题。我正在开发一个在window.load上计算div位置的网站,因为它有一些动态滚动事件突出显示(DOM Ready是错误的选择,因为图像和内容尚未加载,并且计算div位置不正确时页面已经完全渲染。)本地资产运行完美,并针对性能进行了优化,但我的问题是客户端需要社交媒体嵌入,例如Twitter关注和facebook喜欢按钮。 Twitter似乎渲染速度非常快,但Facebook需要很长时间才能在window.load事件准备好之前大约延迟20-30秒,这意味着我的导航会滞后并且无法正常工作。我不知道它是否可能,但有没有办法确定何时加载所有本地JavaScript文件(这些文件都包含在结束体标记之前)。
答案 0 :(得分:1)
可能。页面中的所有JavaScript都按浏览器遇到它的顺序执行。因此,当您将<script>
元素添加为<body>
元素内的最后一个元素时(即位于页面底部),此代码将在所有其他脚本代码之后运行已被执行。此外,在那个时候,DOM将完成(没有其他HTML可以处理),除了回调仍然可能做的事情(定时器,onload-handlers)。
所以你可以尝试在你的代码和Facebook代码之间加一个<script>
元素。但这意味着你的DOM还没有准备好。
更好的解决方案可能是开始在onload
内部的后台加载Facebook代码。这意味着页面的其余部分都在那里,Facebook可以花时间。