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 相关文章推荐
分享一个用Mootools写的鼠标滑过进度条改变进度值的实现代码
Dec 12 Javascript
浏览器的JavaScript引擎的识别方法
Oct 20 Javascript
javascript对中文按照拼音排序代码
Aug 20 Javascript
Javascript基础教程之switch语句
Jan 18 Javascript
一步步教大家编写酷炫的导航栏js+css实现
Mar 14 Javascript
javascript正则表达式模糊匹配IP地址功能示例
Jan 06 Javascript
Jquery中.bind()、.live()、.delegate()和.on()之间的区别详解
Aug 01 jQuery
关于JS与jQuery中的文档加载问题
Aug 22 jQuery
vue 使用vue-i18n做全局中英文切换的方法
Oct 29 Javascript
详解vue数组遍历方法forEach和map的原理解析和实际应用
Nov 15 Javascript
Node.js控制台彩色输出的方法与原理实例详解
Dec 01 Javascript
Selenium执行Javascript脚本参数及返回值过程详解
Apr 01 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实现无限级分类实现代码(递归方法)
2011/01/01 PHP
PHP实现把MySQL数据库导出为.sql文件实例(仿PHPMyadmin导出功能)
2014/05/10 PHP
PHP-Java-Bridge使用笔记
2014/09/22 PHP
解决php-fpm.service not found问题的办法
2017/06/06 PHP
Laravel框架实现即点即改功能的方法分析
2019/10/31 PHP
js正则表达式的使用详解
2013/07/09 Javascript
使用js实现一个可编辑的select下拉列表
2014/02/20 Javascript
node.js中的fs.lstatSync方法使用说明
2014/12/16 Javascript
学习javascript面向对象 掌握创建对象的9种方式
2016/01/04 Javascript
解决同一页面中两个iframe互相调用jquery,js函数的方法
2016/12/12 Javascript
jQuery自定义插件详解及实例代码
2016/12/29 Javascript
微信小程序 传值取值的几种方法总结
2017/01/16 Javascript
JS实现禁止用户使用Ctrl+鼠标滚轮缩放网页的方法
2017/04/28 Javascript
jQuery实现select下拉框获取当前选中文本、值、索引
2017/05/08 jQuery
基于jQuery实现手风琴菜单、层级菜单、置顶菜单、无缝滚动效果
2017/07/20 jQuery
微信小程序实现传参数的几种方法示例
2018/01/10 Javascript
基于jQuery的时间戳与日期间的转化
2019/06/21 jQuery
nodejs对mongodb数据库的增加修删该查实例代码
2020/01/05 NodeJs
JS通用方法触发点击事件代码实例
2020/02/17 Javascript
vue+element-ui JYAdmin后台管理系统模板解析
2020/07/28 Javascript
手把手带你搭建一个node cli的方法示例
2020/08/07 Javascript
Django生成PDF文档显示在网页上以及解决PDF中文显示乱码的问题
2019/07/04 Python
python设置环境变量的作用和实例
2019/07/09 Python
Python命令行参数argv和argparse该如何使用
2021/02/08 Python
Marriott中国:万豪国际酒店查询预订
2016/09/02 全球购物
GOLFINO英国官网:高尔夫服装
2020/04/11 全球购物
教师档案管理制度
2014/01/23 职场文书
人民调解员先进事迹材料
2014/05/08 职场文书
民主生活会对照检查材料范文
2014/10/01 职场文书
新闻简讯格式及范文
2015/07/22 职场文书
先进基层党组织主要事迹材料
2015/11/03 职场文书
2016年优秀党员教师先进事迹材料
2016/02/29 职场文书
详解Laravel框架的依赖注入功能
2021/05/27 PHP
CSS+HTML 实现顶部导航栏功能
2021/08/30 HTML / CSS
【DOTA2】总决赛血虐~ XTREME GAMING vs MAGMA - OGA DOTA PIT 2022 CN
2022/04/02 DOTA
vue本地构建热更新卡顿的问题“75 advanced module optimization”完美解决方案
2022/08/05 Vue.js