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 相关文章推荐
jQuery 滑动方法slideDown向下滑动元素
Jan 16 Javascript
js 删除数组的几种方法小结
Feb 21 Javascript
使用AngularJS处理单选框和复选框的简单方法
Jun 19 Javascript
jQuery右侧选项卡焦点图片轮播特效代码分享
Sep 05 Javascript
前端JS面试中常见的算法问题总结
Dec 23 Javascript
vue组件实例解析
Jan 10 Javascript
ES6新特性之字符串的扩展实例分析
Apr 01 Javascript
jQuery实现手机号正则验证输入及自动填充空格功能
Jan 02 jQuery
在vue-cli搭建的项目中增加后台mock接口的方法
Apr 26 Javascript
微信小程序template模版的使用方法
Apr 13 Javascript
JS扁平化输出数组的2种方法解析
Sep 17 Javascript
详解Howler.js Web音频播放终极解决方案
Aug 23 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目录操作函数之获取目录与文件的类型
2010/12/29 PHP
php实现获取文件mime类型的方法
2015/02/11 PHP
Laravel给生产环境添加监听事件(SQL日志监听)
2017/06/19 PHP
php创建类并调用的实例方法
2019/09/25 PHP
jquery必须知道的一些常用特效方法及使用示例(整理)
2013/06/24 Javascript
js 通用订单代码
2013/12/23 Javascript
使用nodejs、Python写的一个简易HTTP静态文件服务器
2014/07/18 NodeJs
JavaScript中的document.referrer在各种浏览器测试结果
2014/07/18 Javascript
BAT及各大互联网公司2014前端笔试面试题--JavaScript篇
2014/10/29 Javascript
JS跨域问题详解
2014/11/25 Javascript
Js 正则表达式知识汇总
2014/12/02 Javascript
JavaScript中的DSL元编程介绍
2015/03/15 Javascript
jquery组件WebUploader文件上传用法详解
2020/10/23 Javascript
详解nodejs微信公众号开发——2.自动回复
2017/04/10 NodeJs
使用淘宝镜像cnpm安装Vue.js的图文教程
2018/05/17 Javascript
Element中的Cascader(级联列表)动态加载省\市\区数据的方法
2019/03/27 Javascript
layui加载表格,绑定新增,编辑删除,查看按钮事件的例子
2019/09/06 Javascript
微信小程序实现pdf、word等格式文件上传的方法
2019/09/10 Javascript
js实现轮播图效果 z-index实现轮播图
2020/01/17 Javascript
vue 动态添加class,三个以上的条件做判断方式
2020/11/02 Javascript
[01:00] DOTA2英雄背景故事第五期之重力引力法则谜团
2020/07/16 DOTA
Python编程实现双链表,栈,队列及二叉树的方法示例
2017/11/01 Python
浅谈Python traceback的优雅处理
2018/08/31 Python
Python redis操作实例分析【连接、管道、发布和订阅等】
2019/05/16 Python
基于python plotly交互式图表大全
2019/12/07 Python
Python使用plt.boxplot() 参数绘制箱线图
2020/06/04 Python
简述Linux文件系统通过i节点把文件的逻辑结构和物理结构转换的工作过程
2016/01/06 面试题
敬老文明号事迹材料
2014/01/16 职场文书
5.1手机促销活动
2014/01/17 职场文书
工程管理专业毕业生自荐信
2014/01/24 职场文书
自行车租赁公司创业计划书
2014/01/28 职场文书
新年主持词
2014/03/27 职场文书
珍爱生命演讲稿
2014/05/10 职场文书
离婚协议书范文
2015/01/26 职场文书
国家助学金受助感言
2015/08/01 职场文书
Python Django / Flask如何使用Elasticsearch
2022/04/19 Python