javascript引导程序

时间:2024-04-16 10:31:16 

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,引导程序
0
投稿

猜你喜欢

  • python 制作一个gui界面的翻译工具

    2022-04-21 20:16:55
  • 技术性击倒与抬杠

    2009-02-12 12:28:00
  • 详解Vuex管理登录状态

    2024-04-26 17:38:02
  • Python面向对象编程之继承与多态详解

    2022-01-24 17:22:01
  • 使用Python爬虫库BeautifulSoup遍历文档树并对标签进行操作详解

    2022-12-17 17:20:07
  • 使用实现pandas读取csv文件指定的前几行

    2021-06-28 12:05:26
  • Python学习之函数 def

    2022-09-06 09:57:41
  • Python调用Redis的示例代码

    2021-02-10 09:51:10
  • Django框架模板介绍

    2021-07-05 07:34:18
  • C++中的string类的用法小结

    2024-04-10 16:09:24
  • Python中Generators教程的实现

    2023-07-28 03:23:20
  • python 合并表格详解

    2023-09-08 16:03:48
  • python信号量,条件变量和事件详解

    2021-10-06 18:14:23
  • Silverlight与Flash的技术比较

    2009-04-19 18:45:00
  • Python如何实现逐行读取文本文件

    2022-06-10 03:34:54
  • python虚拟环境迁移方法

    2021-09-13 07:52:51
  • 解析PHP中VC6 X86和VC9 X86的区别及 Non Thread Safe的意思

    2023-11-06 13:11:37
  • 使用Python实现分别输出每个数组

    2021-10-30 00:28:49
  • Python动态声明变量赋值代码实例

    2023-11-15 03:30:47
  • Python3利用SMTP协议发送E-mail电子邮件的方法

    2023-10-12 17:39:32
  • asp之家 网络编程 m.aspxhome.com