如果一次载入所有需要的JavaScript代码会造成初始网页打开速度变慢,而且很多载入的代码并不需要使用,这种无谓的性能浪费应该 避免。如果要动态载入JavaScript代码,可以利用DOM模型在HTML文档中添加<script>结点,并将此结点的src属性(即 外联 Javascript文件)设置为需要动态载入的JavaScript代码。
下面是一个完成这样功能的例子。
(1)、新建JsLoaderTest.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文件,包含如下代码:
// JavaScript Document
function sayHello(){
alert("Hello World!成功载入JavaScript文件");
}
转自:
http://hi.baidu.com/zhouwanquan/blog/item/cfef9d1666025253f2de328b.html
分享到:
相关推荐
1、由于是英文网站,有的朋友下了某些HTML模板不知道怎么修改,可以百度Dreamweaver网站制作软件下载安装,打开网页后即可以可视化操作修改。 2、由于低版本IE不支持HTML5和CSS3技术,对于部分HTML5模板在IE6、7、8...
1、由于是英文网站,有的朋友下了某些HTML模板不知道怎么修改,可以百度Dreamweaver网站制作软件下载安装,打开网页后即可以可视化操作修改。 2、由于低版本IE不支持HTML5和CSS3技术,对于部分HTML5模板在IE6、7、8...
1、由于是英文网站,有的朋友下了某些HTML模板不知道怎么修改,可以百度Dreamweaver网站制作软件下载安装,打开网页后即可以可视化操作修改。 2、由于低版本IE不支持HTML5和CSS3技术,对于部分HTML5模板在IE6、7、8...
1、由于是英文网站,有的朋友下了某些HTML模板不知道怎么修改,可以百度Dreamweaver网站制作软件下载安装,打开网页后即可以可视化操作修改。 2、由于低版本IE不支持HTML5和CSS3技术,对于部分HTML5模板在IE6、7、8...
1、由于是英文网站,有的朋友下了某些HTML模板不知道怎么修改,可以百度Dreamweaver网站制作软件下载安装,打开网页后即可以可视化操作修改。 2、由于低版本IE不支持HTML5和CSS3技术,对于部分HTML5模板在IE6、7、8...
1、由于是英文网站,有的朋友下了某些HTML模板不知道怎么修改,可以百度Dreamweaver网站制作软件下载安装,打开网页后即可以可视化操作修改。 2、由于低版本IE不支持HTML5和CSS3技术,对于部分HTML5模板在IE6、7、8...
1、由于是英文网站,有的朋友下了某些HTML模板不知道怎么修改,可以百度Dreamweaver网站制作软件下载安装,打开网页后即可以可视化操作修改。 2、由于低版本IE不支持HTML5和CSS3技术,对于部分HTML5模板在IE6、7、8...
1、由于是英文网站,有的朋友下了某些HTML模板不知道怎么修改,可以百度Dreamweaver网站制作软件下载安装,打开网页后即可以可视化操作修改。 2、由于低版本IE不支持HTML5和CSS3技术,对于部分HTML5模板在IE6、7、8...
1、由于是英文网站,有的朋友下了某些HTML模板不知道怎么修改,可以百度Dreamweaver网站制作软件下载安装,打开网页后即可以可视化操作修改。 2、由于低版本IE不支持HTML5和CSS3技术,对于部分HTML5模板在IE6、7、8...
1、由于是英文网站,有的朋友下了某些HTML模板不知道怎么修改,可以百度Dreamweaver网站制作软件下载安装,打开网页后即可以可视化操作修改。 2、由于低版本IE不支持HTML5和CSS3技术,对于部分HTML5模板在IE6、7、8...
1、由于是英文网站,有的朋友下了某些HTML模板不知道怎么修改,可以百度Dreamweaver网站制作软件下载安装,打开网页后即可以可视化操作修改。 2、由于低版本IE不支持HTML5和CSS3技术,对于部分HTML5模板在IE6、7、8...
1、由于是英文网站,有的朋友下了某些HTML模板不知道怎么修改,可以百度Dreamweaver网站制作软件下载安装,打开网页后即可以可视化操作修改。 2、由于低版本IE不支持HTML5和CSS3技术,对于部分HTML5模板在IE6、7、8...
当网站页面上的js和css太多,浏览器打开页面的速度就会很慢,明显降低了用户的体验。使用mod_concatx, 可以合并多个文件在一个http响应报文中,可以有效提高js/css的加载速度。 示例效果如下: mod_concatx模块是在...
加载应用程序:通过访问提供的 URL 在您的 Web 浏览器中打开打字速度测试应用程序。 开始打字测试:单击输入字段以开始键入测试。将出现一个段落,您可以立即开始输入。 跟踪您的表现:当您输入时,该应用程序将实时...
5_2.htm 分别获取当前时间的年月日时分秒。 5_3.htm 时间的水中倒影。 5_4.htm 简单的日历。 5_5.htm 标题栏显示日期。 5_6.htm 标题栏显示时间。 5_7.htm 不同时间的不同问候。 第6章(\6) 示例描述...
JavaScript实例精通 1.本书1~20章所附代码的运行环境 操作系统:Windows 2003、Windows XP Professional,或者Windows 2000 开发环境:、Dreamwave、Notepad、UltraEdit,或者其他文本编辑器 Web服务器:IIS 5.1及...
实例110 使用toLocaleString()方法获取本地时间 176 实例111 全中文显示日期 176 实例112 在状态栏中显示日期时间 178 实例113 使用数组显示星期 179 实例114 在表格中显示时间 180 实例115 退出页面时显示停留时间 ...
纯CSS3书本打开动画加载特效.zip
67、原生JavaScript实现打开一个窗体通用方法 68、原生JavaScript判断是否为客户端设备 69、原生JavaScript获取单选按钮的值 70、原生JavaScript获取复选框的值 71、原生JavaScript判断是否为邮箱 72、原生...
folium 地图资源,包括了js,css 等文档,配合python脚本将对应资源的引用本地化,避免了引入url资源时跨境加载js/css资源网络慢的问题,提升本地folium地图的加载速度,速度提升 800 倍,让地图打开真正的飞起来。...