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 冒号 使用说明
Jun 06 Javascript
Javascript生成json的函数代码(可以用php的json_decode解码)
Jun 11 Javascript
JavaScript的MVVM库Vue.js入门学习笔记
May 03 Javascript
Javascript简写条件语句(推荐)
Jun 12 Javascript
js中用cssText设置css样式的简单方法
Sep 19 Javascript
javascript实现简单的ajax封装示例
Dec 28 Javascript
Angular 4.x 动态创建表单实例
Apr 25 Javascript
react实现菜单权限控制的方法
Dec 11 Javascript
Koa 使用小技巧(小结)
Oct 22 Javascript
JS大坑之19位数的Number型精度丢失问题详解
Apr 22 Javascript
jquery绑定事件 bind和on的用法与区别分析
May 22 jQuery
Element PageHeader页头的使用方法
Jul 26 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
火影忍者:这才是千手柱间和扉间的真正死因,角都就比较搞笑了!
2020/03/10 日漫
如何限制访问者的ip(PHPBB的代码)
2006/10/09 PHP
php框架Phpbean说明
2008/01/10 PHP
PHP中each与list用法分析
2016/01/08 PHP
[原创]PHP实现字节数Byte转换为KB、MB、GB、TB的方法
2017/08/31 PHP
TFDN图片播放器 不错自动播放
2006/10/03 Javascript
javascript json 新手入门文档
2009/12/03 Javascript
jquery获取input表单值的代码
2010/04/19 Javascript
JSON.parse()和JSON.stringify()使用介绍
2014/06/20 Javascript
详解javascript实现自定义事件
2016/01/19 Javascript
javascript使用闭包模拟对象的私有属性和方法
2016/10/05 Javascript
jQuery Validate表单验证插件实现代码
2017/06/08 jQuery
vue项目中axios请求网络接口封装的示例代码
2018/12/18 Javascript
详解Webpack如何引入CDN链接来优化编译后的体积
2019/06/21 Javascript
layui监听单元格编辑前后交互的例子
2019/09/16 Javascript
vue实现简单学生信息管理
2020/05/30 Javascript
微信h5静默和非静默授权获取用户openId的方法和步骤
2020/06/08 Javascript
[03:18]【TI9纪实】社区大触GL与木木
2019/08/25 DOTA
python getopt详解及简单实例
2016/12/30 Python
Python实现的科学计算器功能示例
2017/08/04 Python
python中获得当前目录和上级目录的实现方法
2017/10/12 Python
python自动重试第三方包retrying模块的方法
2018/04/24 Python
Python爬虫框架Scrapy基本用法入门教程
2018/07/26 Python
Python3.5内置模块之shelve模块、xml模块、configparser模块、hashlib、hmac模块用法分析
2019/04/27 Python
python实现串口自动触发工作的示例
2019/07/02 Python
Python使用Turtle库绘制一棵西兰花
2019/11/23 Python
PyQt5实现简单的计算器
2020/05/30 Python
分享8款纯CSS3实现的搜索框功能
2017/09/14 HTML / CSS
Hotels.com台湾:饭店订房网
2017/09/06 全球购物
为什么要用EJB
2014/04/17 面试题
门卫工作岗位职责
2013/12/17 职场文书
升职演讲稿范文
2014/05/23 职场文书
党员教师群众路线个人整改措施
2014/10/28 职场文书
开票证明
2015/06/23 职场文书
SpringBoot整合Mybatis Generator自动生成代码
2021/08/23 Java/Android
MySQL索引 高效获取数据的数据结构
2022/05/02 MySQL