为IE的javascript提速javascript
来源:互联网 发布:http请求返回数据不全 编辑:程序博客网 时间:2024/05/22 00:23
我们知道,javascript在执行期时是由内到外执行脚本的,那么离我们的脚本最远的全局对象,很可能要跨越几层作用域才能访问到它。不过在ie中,从最内层到最外层要花的时间比其他多出很多。加之,javascript是一种胶水语言,它必须要调用dom对能完成我们大多数选择。最著名的就是选择元素(document.getelementbyid,document.getelementsbytagname,docuemnt.evaluate,document.queryselector),创建元素(document.createelement),此外还有document.body,document.defaultview.getcomputedstyle等等,频繁地调用document对象,但是document是位于window对象下,因此这路程就更远了。就了提速,我们必须把它们保存在一个本地变量,那么每次就省得它长途跋涉了。这种技术的运用明显体现在jquery的源码中:
(function( window, undefined ) {
// define a local copy of jquery
var jquery = function( selector, context ) {
// the jquery object is actually just the init constructor 'enhanced'
return new jquery.fn.init( selector, context );
},
// map over jquery in case of overwrite
_jquery = window.jquery,
// map over the $ in case of overwrite
_$ = window.$,
// use the correct document accordingly with window argument (sandbox)
document = window.document,
//====================省=================
}
// expose jquery to the global object
window.jquery = window.$ = jquery;
})(window);
把window传进闭包内,就省得它每次都往外找window了。
再看其他类库
//raphael
window.raphael = (function () {
var separator = /[, ]+/,
elements = /^(circle|rect|path|ellipse|text|image)$/,
doc = document,
win = window,
//************略**************
//dojo
d.global = this;
//ext
doc = document,
//yui
//************略************
} else if (i == 'win') {
c[i] = o[i].contentwindow || o[i];
c.doc = c[i].document;
//************略************
y.config = {
win: window || {},
doc: document,
但是如果你没有引入类库,如果让ie的javascript跑得更快些呢?用一个变量把它储存起来?在日本博客看到一种很厉害的劫持技术,偷龙转凤把全局变量document变成一个局部变量。
/*@cc_on _d=document;eval('var document=_d')@*/
="" ="" !!!!!!="" ="" ="">
运行代码
======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
- 为IE的javascript提速javascript
- 提速javascript开发(一)
- 提速javascript开发(二)
- JavaScript的IE兼容性
- Javascript 判断浏览器是否为IE的最短方法
- Javascript 判断是否为IE浏览器的方法
- javascript判断是否为IE浏览器
- IE javascript
- 兼容IE和Firefox的设为首页和收藏的Javascript代码
- 常用的JavaScript检测浏览器为IE是哪个版本的代码
- 兼容IE,Firefox,chrome等浏览器 : 设为首页和收藏的Javascript代码
- ie版本、秘钥长度、产品ID为空,导致不能运行Javascript的解决方法
- javascript: 加入收藏 设为首页 功能 兼容Firefox和IE
- IE下用JavaScript将HTML导出为Word、Pdf
- IE下用JavaScript将HTML导出为Word、Pdf
- 【总结】IE和Firefox的Javascript兼容性总结javascript
- 【javascript总结】javascript的IE事件和DOM事件模型
- Javascript的IE和Firefox兼容性汇编
- javascript中alert函数的替代方案,一个自定义的对话框的方法javascript
- (原创)一个JavaScript Function Outliner插件 第三个版本 让你的JavaScript代码也支持折叠javascript
- javascript 异步编程javascript
- javascript 学习笔记(八)javascript对象javascript
- 简评:JavaScript将成Silverlight的最大对手?javascript
- 为IE的javascript提速javascript
- javascript文件在IE缓存中的迷惑与解惑实验javascript
- Javascript进度条显示javascript
- 10种JavaScript特效实例让你的网站更吸引人javascript
- 常用JavaScript(一)javascript
- 阅读Ext 学习Javascript(一)Core/Ext.jsjavascript
- 关于JavaScript脚本中的alert思考javascript
- Javascript与Flash/Flex/SilverLightjavascript
- 企业库 验证模块的 javascript 解决方案javascript