加速网站 - 将脚本/图像标记为可选?

时间:2013-05-04 19:22:06

标签: javascript css browser web

在我的网站上,我的广告来自网络,加载速度不是特别快。有些浏览器不会绘制页面,除非广告加载,使网站看起来比实际更慢 - 有什么办法可以阻止这种情况吗?如将脚本标记为非必要或做一些javascript技巧只能在它加载后绘制它?我试过谷歌搜索解决方案,但无济于事。

此外,一些广告作为iframe添加到网站,一些作为JS脚本(非常像adsense)

4 个答案:

答案 0 :(得分:3)

如果加载广告是可选的,您可以做的是等待加载它们,然后使用ajax稍后使用jquery加载/添加它们。

答案 1 :(得分:1)

在这里做的最好的事情是推迟加载广告,以及其他任何非必要的内容,直到页面加载完毕为止。

附加代码以将这些代码加载到window.onload。当页面上的所有内容都完成加载时,该事件将触发。您甚至可以通过稍后将其添加到DOM来推迟加载整个脚本。我为此使用jQuery.getScript(),但还有其他方法。

答案 2 :(得分:1)

加载DOM后加载广告。您可以正常加载页面,然后绑定一个注入广告的函数(JavaScript)。

标签上还有defer属性,但它不是完全跨浏览器支持的。

JavaScript: Defer Execution

答案 3 :(得分:0)

您可以尝试在关闭正文标记之前将脚本标记放在页面底部。 http://developer.yahoo.com/blogs/ydn/high-performance-sites-rule-6-move-scripts-bottom-7200.html 或者您可以尝试异步加载它们。

在HTML5中(没有那么多的浏览器支持)

<script async src="http://your.com/script.js"></script>

另一种方式(适用于更多浏览器)

<script>
   var resource = document.createElement('script'); 
   resource.src = "//your.com/script.js";
   var script = document.getElementsByTagName('script')[0];
   script.parentNode.insertBefore(resource, script);
</script>

http://css-tricks.com/thinking-async/