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 跨域和ajax 跨域问题小结
Jul 01 Javascript
javascript让setInteval里的函数参数中的this指向特定的对象
Jan 31 Javascript
跨浏览器开发经验总结(四) 怎么写入剪贴板
May 13 Javascript
按钮JS复制文本框和表格的代码
Apr 01 Javascript
javascript使用location.search的示例
Nov 05 Javascript
js获取ajax返回值代码
Apr 30 Javascript
cookie的secure属性详解
Apr 08 Javascript
element-ui upload组件多文件上传的示例代码
Oct 17 Javascript
jQuery实现ajax的嵌套请求案例分析
Feb 16 jQuery
Node.js事件的正确使用方法
Apr 05 Javascript
js中数组常用方法总结(推荐)
Apr 09 Javascript
React 条件渲染最佳实践小结(7种)
Sep 27 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
DC动画电影《黑暗正义联盟》曝预告 5月5日上线数字平台
2020/04/09 欧美动漫
使用PHP Socket写的POP3类
2013/10/30 PHP
jQuery 入门讲解1
2009/04/15 Javascript
JQuery中阻止事件冒泡几种方式及其区别介绍
2014/01/15 Javascript
JS常用表单验证方法总结
2014/05/22 Javascript
jQuery带进度条全屏图片轮播特效代码分享
2020/06/28 Javascript
使用jquery实现鼠标滑过弹出更多相关信息层附源码下载
2015/11/23 Javascript
jQuery Easyui实现左右布局
2016/01/26 Javascript
Bootstrap零基础学习第一课之模板
2016/07/18 Javascript
vuex state及mapState的基础用法详解
2018/04/19 Javascript
Vue写一个简单的倒计时按钮功能
2018/04/20 Javascript
实例详解vue.js浅度监听和深度监听及watch用法
2018/08/16 Javascript
JS实现十分钟倒计时代码实例
2018/10/18 Javascript
jQuery时间戳和日期相互转换操作示例
2018/12/07 jQuery
JS中getElementsByClassName与classList兼容性问题解决方案分析
2019/08/07 Javascript
js面向对象之实现淘宝放大镜
2020/01/15 Javascript
[49:40]2018DOTA2亚洲邀请赛小组赛 A组加赛 TNC vs Newbee
2018/04/03 DOTA
详解numpy的argmax的具体使用
2019/05/27 Python
通过PHP与Python代码对比的语法差异详解
2019/07/10 Python
Django Docker容器化部署之Django-Docker本地部署
2019/10/09 Python
python groupby 函数 as_index详解
2019/12/16 Python
Python 调用有道翻译接口实现翻译
2020/03/02 Python
python shapely.geometry.polygon任意两个四边形的IOU计算实例
2020/04/12 Python
世界上第一个创建了罩杯系统的美国内衣品牌:Maidenform
2019/03/23 全球购物
应届生求职推荐信
2013/10/28 职场文书
村优秀党员事迹材料
2014/01/15 职场文书
心理健康课教学反思
2014/02/13 职场文书
自愿离婚协议书2015
2015/01/26 职场文书
贪污检举信范文
2015/03/02 职场文书
学雷锋献爱心活动总结
2015/05/11 职场文书
2015年七夕情人节感言
2015/08/03 职场文书
中秋节随笔
2015/08/15 职场文书
javaScript Array api梳理
2021/03/31 Javascript
Go语言带缓冲的通道实现
2021/04/26 Golang
Python学习开发之图形用户界面详解
2021/08/23 Python
vue3不同环境下实现配置代理
2022/05/25 Vue.js