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 相关文章推荐
JavaScript prototype对象的属性说明
Mar 13 Javascript
使用FlexiGrid实现Extjs表格效果方法分享
Dec 16 Javascript
jQuery右下角旋转环状菜单特效代码
Aug 10 Javascript
JS实现的颜色实时渐变效果完整实例
Mar 25 Javascript
JS实现鼠标滑过显示边框的菜单效果
Sep 21 Javascript
js的三种继承方式详解
Jan 21 Javascript
Node.js学习之查询字符串解析querystring详解
Sep 28 Javascript
vue 项目打包通过命令修改 vue-router 模式 修改 API 接口前缀
Jun 13 Javascript
在vue中给列表中的奇数行添加class的实现方法
Sep 05 Javascript
JS实现动态添加外部js、css到head标签的方法
Jun 05 Javascript
vue3.0搭配.net core实现文件上传组件
Oct 29 Javascript
Vue使用Element实现增删改查+打包的步骤
Nov 25 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
session 的生命周期是多长
2006/10/09 PHP
浅谈PHP强制类型转换,慎用!
2013/06/06 PHP
ThinkPHP Mobile使用方法简明教程
2014/06/18 PHP
浅谈PHP安全防护之Web攻击
2017/01/03 PHP
php 删除指定文件夹的实例讲解
2017/07/25 PHP
PHP中非常有用却鲜有人知的函数集锦
2019/08/17 PHP
CI框架简单分页类用法示例
2020/06/06 PHP
JS JavaScript获取Url参数,src属性参数
2021/03/09 Javascript
javascript 命名规则 变量命名规则
2010/02/25 Javascript
Script的加载方法小结
2011/01/12 Javascript
jquery delay()介绍及使用指南
2014/09/02 Javascript
浅析JavaScript 箭头函数 generator Date JSON
2016/05/23 Javascript
使用vue 国际化i18n 实现多实现语言切换功能
2018/10/11 Javascript
vue-cli3+ts+webpack实现多入口多出口功能
2019/05/30 Javascript
通过JQuery,JQueryUI和Jsplumb实现拖拽模块
2019/06/18 jQuery
vue实现滑动超出指定距离回顶部功能
2019/07/31 Javascript
python-str,list,set间的转换实例
2018/06/27 Python
pytorch: tensor类型的构建与相互转换实例
2018/07/26 Python
Python使用sqlalchemy模块连接数据库操作示例
2019/03/13 Python
Python基于机器学习方法实现的电影推荐系统实例详解
2019/06/25 Python
PyQt5多线程刷新界面防假死示例
2019/12/13 Python
Python GUI编程学习笔记之tkinter事件绑定操作详解
2020/03/30 Python
教你使用Sublime text3搭建Python开发环境及常用插件安装另分享Sublime text3最新激活注册码
2020/11/12 Python
利用CSS3的flexbox实现水平垂直居中与三列等高布局
2016/09/12 HTML / CSS
英国剑桥包官网:The Cambridge Satchel Company
2016/08/01 全球购物
俄罗斯一家时尚女装商店:Charuel
2019/12/04 全球购物
计算机应用职专应届生求职信
2013/11/12 职场文书
什么是岗位职责
2013/11/12 职场文书
大学生应聘推荐信范文
2013/11/19 职场文书
招商业务员岗位职责
2013/12/16 职场文书
酒吧创业计划书
2014/01/18 职场文书
区域销售主管岗位职责
2014/06/15 职场文书
大学生求职信
2014/06/17 职场文书
大学毕业生个人总结
2015/02/28 职场文书
中国十大神话动漫电影排行榜 哪吒登顶 白蛇缘起排第七
2022/03/21 国漫
JavaScript架构搭建前端监控如何采集异常数据
2022/06/25 Javascript