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 相关文章推荐
用javascript获得地址栏参数的两种方法
Nov 08 Javascript
JavaScipt基本教程之JavaScript语言的基础
Jan 16 Javascript
javascript hashtable 修正版 下载
Dec 30 Javascript
jquery禁止输入数字以外的字符的示例(纯数字验证码)
Apr 10 Javascript
window.location.href的用法(动态输出跳转)
Aug 09 Javascript
DOM事件阶段以及事件捕获与事件冒泡先后执行顺序(图文详解)
Aug 18 Javascript
JavaScript脚本库编写的方法
Dec 09 Javascript
利用jQuery对无序列表排序的简单方法
Oct 16 Javascript
jquery中用函数来设置css样式
Dec 22 Javascript
浅谈Angular.js中使用$watch监听模型变化
Jan 10 Javascript
Windows下支持自动更新的Electron应用脚手架的方法
Dec 24 Javascript
vue+element tabs选项卡分页效果
Jun 29 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
PHP通过串口实现发送短信
2015/07/08 PHP
php表单提交实例讲解
2015/11/12 PHP
一段批量给页面上的控件赋值js
2010/06/19 Javascript
Javascript类定义语法,私有成员、受保护成员、静态成员等介绍
2011/12/08 Javascript
基于jquery的图片轮播 tab切换组件
2012/07/19 Javascript
用js实现table单元格高宽调整,兼容合并单元格(兼容IE6、7、8、FF)实例
2013/06/25 Javascript
用Javascript获取页面元素的具体位置
2013/12/09 Javascript
JavaScript设计模式之单件模式介绍
2014/12/28 Javascript
JavaScript计时器示例分析
2015/02/05 Javascript
jquery操作复选框checkbox的方法汇总
2015/02/05 Javascript
js代码验证手机号码和电话号码是否合法
2015/07/30 Javascript
Bootstrap 填充Json数据的实例代码
2017/01/11 Javascript
js仿京东轮播效果 选项卡套选项卡使用
2017/01/12 Javascript
Vue2.x中的父子组件相互通信的实现方法
2017/05/02 Javascript
nodeJS实现简单网页爬虫功能的实例(分享)
2017/06/08 NodeJs
基于JavaScript实现评论框展开和隐藏功能
2017/08/25 Javascript
详解vue-cli项目中怎么使用mock数据
2018/05/29 Javascript
JavaScript的词法结构精华篇
2018/10/17 Javascript
Vue 的 v-model用法实例
2020/11/23 Vue.js
vue中父子组件的参数传递和应用示例
2021/01/04 Vue.js
js属性对象的hasOwnProperty方法的使用
2021/02/05 Javascript
[43:36]Liquid vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
基于python的Tkinter编写登陆注册界面
2017/06/30 Python
Python中的Socket 与 ScoketServer 通信及遇到问题解决方法
2019/04/01 Python
详解Python中的内建函数,可迭代对象,迭代器
2019/04/29 Python
快速解决jupyter notebook启动需要密码的问题
2020/04/21 Python
pymysql之cur.fetchall() 和cur.fetchone()用法详解
2020/05/15 Python
飞利浦西班牙官方网站:Philips西班牙
2020/02/17 全球购物
正宗的澳大利亚Ugg靴子零售商:UGG Express
2020/04/19 全球购物
如何实现一个自定义类的序列化
2012/05/22 面试题
Linux如何压缩可执行文件
2013/10/21 面试题
J2EE中常用的名词进行解释
2015/11/09 面试题
质检员工作总结2015
2015/04/25 职场文书
2015年共青团工作总结
2015/05/15 职场文书
详解Java ES多节点任务的高效分发与收集实现
2021/06/30 Java/Android
Mysql忘记密码解决方法
2022/02/12 MySQL