javascript引导程序


Posted in Javascript onOctober 26, 2008

1、网页在加载时,页面代码中的js文件引用(如下)都会向服务器产生http请求,因为在body.onload事件之前加载的文件(这里我称之为静态加载文件)都会向服务器产生http请求。为了减少服务器的http请求,本人提倡每个页面最多只有一个js文件引用。
<script language='Javascript' type='text/Javascript' src='?.js'></script>
2、body.onload事件之后加载文件(这里我称之为动态加载文件)的时候,浏览器会先查找缓存文件,如果缓存文件不存在才会向服务器发出http请求;所以本人提倡动态加载文件,而在body.onload事件之前的静态加载文件应该做到精短。
3、本系统程序按照功能模块划分为单个文件,在/source/js/system.js中实现运行时按需下载,而不是恐怖的一次性下载所有脚本程序代码,减少网络带宽的占用。
4、为了让js代码跨网站调用时不会出现编码问题,程序中所有汉字用函数escape编码,如果只是单网站使用,您可以把编码改回汉字。
5、所有函数或类注明为“本网站自用”的,很可能与本网站后台自定义的数据类型有关,您可以将它删除。

下面是/js/Load.js程序以及的注释说明:

var IsBody={}; //定义动态加载js程序文件的代码 
eval("IsBody.AppendJs="+(IsBody.AppendJsCode="function(){var A=(typeof(arguments[0])=='string'?arguments:arguments[0]);for(var i=A.length-1;i>=0;i--){var J=document.createElement('script');J.language='javascript';J.type='text/Javascript';J.src=A[i];document.getElementsByTagName('head')[0].appendChild(J);}};")); 
//测试document.body是否已经加载 
IsBody.Try=function() 
{ 
if(document.body&&((this.IsIE=(document.readyState!=null))?document.readyState.toLowerCase()=='complete':true)) 
{ //document.body加载后判断浏览器是IE还是FoxFire,本程序目前支持这两种浏览器 
clearTimeout(this.Interval); 
if(typeof(LoadCssFile)!='undefined') 
{ //动态加载css文件,目的也是减少服务器的http请求(注意这里LoadCssFile是个数组) 
var C=LoadCssFile,j=C.length,i=1; 
while(i<j) 
{ 
var J=document.createElement('link');J.rel='stylesheet';J.type='text/css';J.href=C[i++];document.getElementsByTagName('head')[0].appendChild(J); 
} 
} 
//动态加载图片,目的也是减少服务器的http请求 
if(typeof(LoadImage)!='undefined') this.AppendJs('/source/js/LoadImage.js'); 
//动态加载程序主体系统 
this.AppendJs('/source/js/System.js'); 
} 
}; 
IsBody.Interval=setInterval('IsBody.Try();',100);
Javascript 相关文章推荐
ExtJS GTGrid 简单用户管理
Jul 01 Javascript
Jquery.LazyLoad.js修正版下载,实现图片延迟加载插件
Mar 12 Javascript
JavaScript在XHTML中的用法详解
Apr 11 Javascript
上传的js验证(图片/文件的扩展名)
Apr 25 Javascript
javascript中interval与setTimeOut的区别示例介绍
Mar 14 Javascript
JavaScript数组函数unshift、shift、pop、push使用实例
Aug 27 Javascript
javascript html5实现表单验证
Mar 01 Javascript
详解JS正则replace的使用方法
Mar 06 Javascript
javascript事件委托的用法及其好处简析
Apr 04 Javascript
基于EasyUI的基础之上实现树形功能菜单
Jun 28 Javascript
three.js利用gpu选取物体并计算交点位置的方法示例
Nov 25 Javascript
JS常用排序方法实例代码解析
Mar 03 Javascript
javascript笔试题目附答案@20081025_jb51.net
Oct 26 #Javascript
Div自动滚动到末尾的代码
Oct 26 #Javascript
Firefox getBoxObjectFor getBoundingClientRect联系
Oct 26 #Javascript
js判断变量是否空值的代码
Oct 26 #Javascript
Prototype使用指南之selector.js说明
Oct 26 #Javascript
prototype Element学习笔记(Element篇三)
Oct 26 #Javascript
prototype Element学习笔记(篇二)
Oct 26 #Javascript
You might like
ASP知识讲座四
2006/10/09 PHP
set_include_path在win和linux下的区别
2008/01/10 PHP
使用HMAC-SHA1签名方法详解
2013/06/26 PHP
CI(CodeIgniter)框架中的增删改查操作
2014/06/10 PHP
smarty模板引擎使用内建函数foreach循环取出所有数组值的方法
2015/01/22 PHP
CodeIgniter中使用Smarty3基本配置
2015/06/29 PHP
php结合ajax实现手机发红包的案例
2016/10/13 PHP
Prototype Class对象学习
2009/07/19 Javascript
JS中类或对象的定义说明
2014/03/10 Javascript
jQuery的css()方法用法实例
2014/12/24 Javascript
javascript动态添加删除tabs标签的方法
2015/07/06 Javascript
JavaScript对象数组排序函数及六个用法
2015/12/23 Javascript
微信小程序 密码输入(源码下载)
2017/06/27 Javascript
Vuejs 页面的区域化与组件封装的实现
2017/09/11 Javascript
JS实现的全选、全不选及反选功能【案例】
2019/02/19 Javascript
JS如何判断对象是否包含某个属性
2020/08/29 Javascript
vue实现按钮切换图片
2021/01/20 Vue.js
python用Pygal如何生成漂亮的SVG图像详解
2017/02/10 Python
Python方法的延迟加载的示例代码
2017/12/18 Python
http请求 request失败自动重新尝试代码示例
2018/01/25 Python
Python模块搜索路径代码详解
2018/01/29 Python
利用python实现微信头像加红色数字功能
2018/03/26 Python
Python使用matplotlib实现的图像读取、切割裁剪功能示例
2018/04/28 Python
django+echart绘制曲线图的方法示例
2018/11/26 Python
Django框架 信号调度原理解析
2019/09/04 Python
基于python2.7实现图形密码生成器的实例代码
2019/11/05 Python
使用python的turtle绘画滑稽脸实例
2019/11/21 Python
Tensorflow tf.nn.atrous_conv2d如何实现空洞卷积的
2020/04/20 Python
8种常用的Python工具
2020/08/05 Python
HTML5 本地存储实现购物车功能
2017/09/07 HTML / CSS
俄罗斯香水和化妆品购物网站:Л’Этуаль
2018/05/10 全球购物
struct与class的区别
2014/02/03 面试题
铭立家具面试题
2012/12/06 面试题
公司副总经理任命书
2014/06/05 职场文书
社区关爱留守儿童活动方案
2014/08/22 职场文书
2016年秋季开学典礼新闻稿
2015/11/25 职场文书