Ruby's Louvre

每天学习一点点算法

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

我的模块加载系统 v11

我的模块加载系统也终于到11这样高的版本了,随着它的完成,其他模块也加快了进RC的发布表,文档撰写工作也在跟进中。在本文的最后,我会提供dom Framework的部分文档下载(CHM文件)。

本版本有以下改进:

  1. 强化dom.require,如果这个回调代表的是模块,则只允许执行一次,如果是这个回调是用户指定的正向回调,则可以执行无数次。
  2. 强化对window的判定,相关讨论见这里这里
  3. 移除dom.ready方法, 只提供dom(function(){})这种简捷形式。
  4. 更改dom.uuid为dom["@uuid"],dom.basePath为dom["@path"],以示它们是系统变量。现在核心模块拥有的系统变量有: @uuid, @name, @debug, @emitte, @path, @modules,请不要对它们进行读写操作。
  5. 更改是否在顶层窗口的判定 global.frameElement == null --> self.eval === top.eval
  6. 简化fixOperaError中伪dom命名空间对象,此对象唯一用于在iframe测试URL是否死链接,模拟script的onerror事件:
  7. 优化截取隐藏命名空间的正则,由: /(\W|(#.+))/g 改为 /(#.+|\W)/g

通过测试的浏览器:IE6-9 FF3.6.12 FF5.1 opera11.50 safari 5 chrome14.0.8

小知识:正向回调与负向回调

在大部分浏览器的script节点中,有两个事件,一个是onload,一个是onerror。如果加载成功就执行onload的回调,也就是所谓的正向回调,相反,加载失败,就会执行onerror的回调,也就是所谓的负向回调。opera与IE678没有onerror,IE678也没有onload。dom Framework通过各种手段解决此问题,实现按需加载,并行加载,自动处理依赖(让模块按正确的顺序执行),自动报错。。。

模块加载的示例(115)

dom Framework的部分文档,现在只完成dom, ecma, lang, class, node这几个模块的文档撰写。

相关链接:

我的模块加载系统 v10

我的模块加载系统 v9

我的模块加载系统 v8

我的模块加载系统 v7

我的模块加载系统 v6

如果您觉得此文有帮助,可以打赏点钱给我支付宝1669866773@qq.com ,或扫描二维码

posted on   司徒正美  阅读(2973)  评论(4编辑  收藏  举报

编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
历史上的今天:
2010-10-09 javascript 随机数
2009-10-09 javascript线性渐变1
点击右上角即可分享
微信分享提示