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 相关文章推荐
两个SUBMIT按钮,如何区分处理
Aug 22 Javascript
可兼容IE的获取及设置cookie的jquery.cookie函数方法
Sep 02 Javascript
iframe子页面获取父页面元素的方法
Nov 05 Javascript
js实现简单的联动菜单效果
Aug 19 Javascript
七夕情人节丘比特射箭小游戏
Aug 20 Javascript
详解JS面向对象编程
Jan 24 Javascript
js实现可控制左右方向的无缝滚动效果
May 29 Javascript
关于vuex的学习实践笔记
Apr 05 Javascript
vue项目优化之通过keep-alive数据缓存的方法
Dec 11 Javascript
vue.js实现的全选与全不选功能示例【基于elementui】
Dec 03 Javascript
JS中的算法与数据结构之常见排序(Sort)算法详解
Aug 16 Javascript
JS实现贪吃蛇游戏
Nov 15 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
sony ICF-2010 拆解与改装
2021/03/02 无线电
要会喝咖啡也要会知道咖啡豆
2021/03/03 咖啡文化
js location.replace与location.reload的区别
2010/09/08 Javascript
UI Events 用户界面事件
2012/06/27 Javascript
jQuery中验证表单提交方式及序列化表单内容的实现
2014/01/06 Javascript
JS的get和set使用示例
2014/02/20 Javascript
JQuery 图片滚动轮播示例代码
2014/03/24 Javascript
JQuery入门基础小实例(1)
2015/09/17 Javascript
JQuery实现左右滚动菜单特效
2015/09/28 Javascript
详解nodejs与javascript中的aes加密
2016/05/22 NodeJs
Bootstrap自动适应PC、平板、手机的Bootstrap栅格系统
2016/05/27 Javascript
Nodejs读取文件时相对路径的正确写法(使用fs模块)
2017/04/27 NodeJs
关于Angular2 + node接口调试的解决方案
2017/05/28 Javascript
JavaScript的六种继承方式(推荐)
2017/06/26 Javascript
jquery操作ul的一些操作笔记整理(干货)
2017/08/31 jQuery
node+express框架中连接使用mysql(经验总结)
2018/11/10 Javascript
javascript中的with语句学习笔记及用法
2020/02/17 Javascript
ant-design-vue 时间选择器赋值默认时间的操作
2020/10/27 Javascript
[04:16]DOTA2英雄梦之声_第09期_斧王
2014/06/21 DOTA
Python操作Mysql实例代码教程在线版(查询手册)
2013/02/18 Python
python基于windows平台锁定键盘输入的方法
2015/03/05 Python
PHP网页抓取之抓取百度贴吧邮箱数据代码分享
2016/04/13 Python
Python实现读取json文件到excel表
2017/11/18 Python
Python3 读、写Excel文件的操作方法
2018/10/20 Python
python之Flask实现简单登录功能的示例代码
2018/12/24 Python
pytorch+lstm实现的pos示例
2020/01/14 Python
浅谈pytorch torch.backends.cudnn设置作用
2020/02/20 Python
Python如何telnet到网络设备
2021/02/18 Python
CSS3媒体查询Media Queries基础学习教程
2016/02/29 HTML / CSS
加拿大时尚床上用品零售商:QE Home | Quilts Etc
2018/01/22 全球购物
《三袋麦子》教学反思
2014/03/02 职场文书
体育之星事迹材料
2014/05/11 职场文书
学校领导班子成员查摆问题及整改措施
2014/10/28 职场文书
Python基于百度API识别并提取图片中文字
2021/06/27 Python
详细聊聊MySQL中慢SQL优化的方向
2021/08/30 MySQL
Android Canvas绘制文字横纵向对齐
2022/06/05 Java/Android