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 相关文章推荐
js/jQuery对象互转(快速操作dom元素)
Feb 04 Javascript
ExtJS自定义主题(theme)样式详解
Nov 18 Javascript
javascript的switch用法注意事项分析
Feb 02 Javascript
JS组件Bootstrap Select2使用方法详解
Apr 17 Javascript
javascript中递归的两种写法
Jan 17 Javascript
npm国内镜像 安装失败的几种解决方案
Jun 04 Javascript
vue将对象新增的属性添加到检测序列的方法
Feb 24 Javascript
JavaScript偏函数与柯里化实例详解
Mar 27 Javascript
vue 项目build错误异常的解决方法
Apr 22 Javascript
微信小程序点击按钮动态切换input的disabled禁用/启用状态功能
Mar 07 Javascript
基于Web Audio API实现音频可视化效果
Jun 12 Javascript
Vue+Bootstrap实现简易学生管理系统
Feb 09 Vue.js
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 编写的日历
2006/10/09 PHP
PHP调用MySQL的存储过程的实现代码
2008/08/12 PHP
PHP5.3以上版本安装ZendOptimizer扩展
2015/03/27 PHP
PHP 7.0.2 正式版发布
2016/01/08 PHP
PHP AjaxForm提交图片上传并显示图片源码
2016/11/29 PHP
php json_encode与json_decode详解及实例
2016/12/13 PHP
php 判断IP为有效IP地址的方法
2018/01/28 PHP
PJ Blog修改-禁止复制的代码和方法
2006/10/25 Javascript
js滚动条多种样式,推荐
2007/02/05 Javascript
js CSS操作方法集合
2008/10/31 Javascript
基于mootools 1.3框架下的图片滑动效果代码
2011/04/22 Javascript
jQuery实现“扫码阅读”功能
2015/01/21 Javascript
jQuery中DOM操作实例分析
2015/01/23 Javascript
Bootstrap多级导航栏(级联导航)的实现代码
2016/03/08 Javascript
Active控件问题小结(附解决办法)
2016/06/09 Javascript
jQuery实现鼠标选中文字后弹出提示窗口效果【附demo源码】
2016/09/05 Javascript
JavaScript学习笔记整理_用于模式匹配的String方法
2016/09/19 Javascript
Bootstrap学习笔记之进度条、媒体对象实例详解
2017/03/09 Javascript
基于Bootstrap框架菜鸟入门教程(推荐)
2017/09/17 Javascript
Vue动态获取width的方法
2018/08/22 Javascript
vue使用codemirror的两种用法
2019/08/27 Javascript
layui table单元格事件修改值的方法
2019/09/24 Javascript
用Python代码来解图片迷宫的方法整理
2015/04/02 Python
python3 pillow生成简单验证码图片的示例
2017/09/19 Python
手把手教你如何安装Pycharm(详细图文教程)
2018/11/28 Python
详解Python Matplotlib解决绘图X轴值不按数组排序问题
2019/08/05 Python
Anaconda 查看、创建、管理和使用python环境的方法
2019/12/03 Python
PyCharm取消波浪线、下划线和中划线的实现
2020/03/03 Python
Beach Bunny Swimwear官网:设计师泳装和性感比基尼
2019/03/13 全球购物
龟牌英国商店:Turtle Wax Brand Store UK
2019/07/02 全球购物
培训督导岗位职责
2015/04/10 职场文书
公司文体活动总结
2015/05/07 职场文书
上诉答辩状范文
2015/05/22 职场文书
民事诉讼代理词
2015/05/25 职场文书
SQL模糊查询报:ORA-00909:参数个数无效问题的解决
2021/06/21 Oracle
Python绘制散乱的点构成的图的方法
2022/04/21 Python