首页 > 网站 > WEB开发 > 正文

提高网页打开速度的方法

2024-04-27 14:34:16
字体:
来源:转载
供稿:网友
提高网页打开速度的方法

如果一次载入所有需要的javaScript代码会造成初始网页打开速度变慢,而且很多载入的代码并不需要使用,这种无谓的性能浪费应该 避免。如果要动态载入Javascript代码,可以利用DOM模型在HTML文档中添加<script>结点,并将此结点的src属性(即 外联 Javascript文件)设置为需要动态载入的JavaScript代码。 下面是一个完成这样功能的例子。 (1)、新建JsLoaderTest.html文件

Java代码 复制代码收藏代码
  1. <htmlxmlns="http://www.w3.org/1999/xhtml">
  2. <head>
  3. <metahttp-equiv="Content-Type"content="text/html;charset=gb2312"/>
  4. <title>按需载入JavaScript代码的例子</title>
  5. <scripttype="text/javascript">
  6. functionJsLoader(){
  7. this.load=function(url){
  8. //获取所有的<script>标记
  9. varss=document.getElementsByTagName("script");
  10. //判断指定的文件是否已经包含,如果已包含则触发onsuccess事件并返回
  11. for(i=0;i<ss.length;i++){
  12. if(ss[i].src&&ss[i].src.indexOf(url)!=-1){
  13. this.onsuccess();
  14. return;
  15. }
  16. }
  17. //创建script结点,并将其属性设为外联JavaScript文件
  18. s=document.createElement("script");
  19. s.type="text/javascript";
  20. s.src=url;
  21. //获取head结点,并将<script>插入到其中
  22. varhead=document.getElementsByTagName("head")[0];
  23. head.appendChild(s);
  24. //获取自身的引用
  25. varself=this;
  26. //对于IE浏览器,使用readystatechange事件判断是否载入成功
  27. //对于其他浏览器,使用onload事件判断载入是否成功
  28. //s.onload=s.onreadystatechange=function(){
  29. s.onload=s.onreadystatechange=function(){
  30. //在此函数中this指针指的是s结点对象,而不是JsLoader实例,
  31. //所以必须用self来调用onsuccess事件,下同。
  32. if(this.readyState&&this.readyState=="loading")return;
  33. self.onsuccess();
  34. }
  35. s.onerror=function(){
  36. head.removeChild(s);
  37. self.onfailure();
  38. }
  39. };
  40. //定义载入成功事件
  41. this.onsuccess=function(){};
  42. //定义失败事件
  43. this.onfailure=function(){};
  44. }
  45. functionbtnClick(){
  46. //创建对象
  47. varjsLoader=newJsLoader();
  48. //定义载入成功处理程序
  49. jsLoader.onsuccess=function(){
  50. sayHello();
  51. }
  52. //定义载入失败处理程序
  53. jsLoader.onfailure=function(){
  54. alert("文件载入失败!");
  55. }
  56. //开始载入
  57. jsLoader.load("hello.js");
  58. }
  59. </script>
  60. </head>
  61. <body>
  62. <label>
  63. <inputtype="submit"name="Submit"onClick="javascript:btnClick()"value="载入JavaScript文件">
  64. </label>
  65. </body>
  66. </html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>按需载入JavaScript代码的例子</title><script type="text/javascript">    function JsLoader(){   this.load=function(url){            //获取所有的<script>标记            var ss=document.getElementsByTagName("script");            //判断指定的文件是否已经包含,如果已包含则触发onsuccess事件并返回            for (i=0;i<ss.length;i++){                if (ss[i].src && ss[i].src.indexOf(url)!=-1){                    this.onsuccess();                    return;                }            }            //创建script结点,并将其属性设为外联JavaScript文件            s=document.createElement("script");            s.type="text/javascript";            s.src=url;            //获取head结点,并将<script>插入到其中            var head=document.getElementsByTagName("head")[0];            head.appendChild(s);                       //获取自身的引用            var self=this;            //对于IE浏览器,使用readystatechange事件判断是否载入成功            //对于其他浏览器,使用onload事件判断载入是否成功            //s.onload=s.onreadystatechange=function(){            s.onload=s.onreadystatechange=function(){                //在此函数中this指针指的是s结点对象,而不是JsLoader实例,                //所以必须用self来调用onsuccess事件,下同。                if (this.readyState && this.readyState=="loading") return;                self.onsuccess();            }            s.onerror=function(){                head.removeChild(s);                self.onfailure();            }        };        //定义载入成功事件        this.onsuccess=function(){};        //定义失败事件        this.onfailure=function(){};    }       function btnClick(){            //创建对象        var jsLoader=new JsLoader();           //定义载入成功处理程序        jsLoader.onsuccess=function(){             sayHello();        }           //定义载入失败处理程序        jsLoader.onfailure=function(){             alert("文件载入失败!");        }           //开始载入        jsLoader.load("hello.js");    }</script></head><body><label><input type="submit" name="Submit" onClick="javascript:btnClick()" value="载入JavaScript文件"></label></body></html>

(2)、新建hello.js文件,包含如下代码:

Java代码 复制代码收藏代码
  1. //JavaScriptDocument
  2. functionsayHello(){
  3. alert("HelloWorld!成功载入JavaScript文件");
  4. }
// JavaScript Documentfunction sayHello(){    alert("Hello World!成功载入JavaScript文件");   }

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表