移除阻止呈现的JavaScript
来源:互联网 发布:mac os x 10.8 iso 编辑:程序博客网 时间:2024/05/16 09:18
个人原创网址:http://www.phpthinking.com/archives/443
浏览器必须先解析网页,然后才能将其呈现给用户。如果浏览器在解析过程中遇到系统阻止的外部脚本,必须停止解析并且下载该JavaScript。每次遇到这种情况时,浏览器都会增加一个网络往返过程,这样就会导致首次呈现网页的时间延迟。
建议
建议您以内嵌方式处理呈现首屏区域所需的JavaScript,并让为网页添加其他功能所需的JavaScript延迟加载,直到首屏内容发送完毕为止。请注意,要通过这种方式缩短加载时间,您还必须优化CSS发送过程。
内嵌较小的JavaScript
如果外部脚本较小,您可以直接将它们添加到HTML文档。通过这种方式内嵌较小文件可让浏览器继续呈现网页。例如,如果HTML文档如下所示:
<html> <head> <scripttype="text/javascript"src="small.js"></script> </head> <body> <div> Hello, world! </div> </body></html>
资源small.js
如下所示:
/* contents of a small JavaScript file */
那么,您即可按如下这样内嵌脚本:
<html> <head> <scripttype="text/javascript"> /* contents of a small JavaScript file */ </script> </head> <body> <div> Hello, world! </div> </body></html>
这样,您就可以将small.js
内嵌在HTML文档中,从而消除对它的外部请求。
延迟加载JavaScript
为防止JavaScript阻止网页加载,建议您在加载JavaScript时使用HTML异步属性。例如:
<script async src="my.js">
如果您的JavaScript资源使用的是document.write,则使用异步加载就会不安全。我们建议您重写使用document.write的脚本,以改用其他技术。
此外,异步加载JavaScript时,如果您的网页加载互相依赖的脚本,请务必谨慎,以确保您的应用以合适的依赖顺序加载脚本。
常见问题解答
- 如果我使用的是JavaScript库(例如jQuery),该怎么做?
- 很多JavaScript库(例如jQuery)都可用来增强网页,从而为网页增添额外的互动性、动画和其他效果。不过,这些行为大多可在首屏内容呈现后再安全添加。请考虑是否可以将此类JavaScript的执行和加载延迟到网页加载后。
- 如果我使用JavaScript框架来构造网页,该如何操作?
- 如果网页内容由客户端JavaScript构造,那么您应考虑一下是否可以嵌入相关的JavaScript模块,从而避免产生额外的网络往返过程。同样,利用服务器端呈现可显著提升首次网页加载的效果,方式如下:在服务器上呈现JS模板,并将结果内嵌到HTML,然后在应用加载后使用客户端模板。
4 0
- 移除阻止呈现的JavaScript
- 移除阻止呈现的JavaScript
- javascript 冒泡的阻止
- 阻止JavaScript的冒泡行为
- javascript阻止postback的方法
- javascript的阻止默认事件和阻止冒泡事件
- javascript li添加 移除
- JavaScript移除数组元素
- javascript添加移除class
- javascript如何动态添加附带移除功能的行
- javascript中注册和移除事件的方式
- Javascript中注册和移除事件的方式
- javascript 移除选中的option,并提示剩余个数
- JavaScript移除数组元素减少长度的方法
- javascript 注册和移除事件的方式
- arcgis javascript api 事件的监听及移除
- 怎样从你的网站移除JavaScript渲染阻塞
- javascript节点的操作 创建、添加、移除、移动、复制
- background-size:cover与-webkit-background-size
- 给定一个函数rand()能产生0到n-1之间的等概率随机数,问如何产生0到m-1之间等概率的随机数?
- Cocos2d-x触摸分发器原理
- JAVASE课程 第一章 第一讲JAVA概述及开发环境搭建
- poj 1064 Cable master(二分)
- 移除阻止呈现的JavaScript
- 网站发布之——ICP备案
- Project生成带级别的Excel文件
- scu 3329
- 2014.09.26 周五-没记录
- 有关json复合对象传至前台的拼接方法
- view.bringToFront() 可以讲布局在下层的控件放到上层,不被其他控件挡住。
- mips 精确异常和延时槽
- day31,page50