page-bus:实现域内页面框架间事件共享的简易方法

需积分: 5 0 下载量 101 浏览量 更新于2024-11-25 收藏 4KB ZIP 举报
资源摘要信息:"page-bus:在同一域的页面和框架之间共享事件发射器" 知识点一:页面总线(page-bus) 页面总线是一种在同域下的不同页面和框架之间共享事件发射器的机制。这种机制允许页面或框架之间进行异步通信,而无需依赖任何网络IO,这意味着即使在离线状态下也能正常工作。页面总线主要利用localStorage API和窗口的storage事件进行事件的同步。 知识点二:localStorage API localStorage是Web Storage API的一部分,是一种在客户端存储数据的方法,用于跨页面会话持久保存数据。localStorage仅在用户的浏览器中存储数据,且数据只能在同一域名下被访问。在page-bus中,localStorage API被用来在不同的页面或框架之间共享事件信息。 知识点三:storage事件 storage事件是一个当Web Storage中的数据发生变化时,由浏览器触发的事件。当localStorage中的数据被修改时,所有同源页面上的document都将接收到这个事件。在page-bus模块中,通过监听storage事件来实现事件的广播。 知识点四:Browserify工具 Browserify是一个工具,它允许你使用类似于Node.js的require()的方式加载模块。它允许你在浏览器端使用node.js的模块化开发方式,使得开发者能够在客户端代码中使用Node.js的模块。在page-bus的示例中,使用Browserify进行模块的编译和打包,以在客户端使用模块。 知识点五:Node.js模块使用require() Node.js是一种服务器端JavaScript环境,它使用require()方法来加载模块。在page-bus的示例中,require()函数用于加载page-bus模块。require()是Node.js的核心功能之一,它通过分析文件的扩展名来决定如何加载模块。 知识点六:事件发射器(event emitter) 事件发射器是一种设计模式,它允许对象在特定事件发生时通知多个“侦听器”对象。page-bus模块通过返回事件发射器,使得用户可以在不同的页面或框架中监听和触发自定义事件。这在单页应用(SPA)中特别有用,它可以用来管理组件间的通信。 知识点七:Event对象 在JavaScript中,当事件被触发时,会创建一个Event对象,该对象包含了事件的相关信息,比如事件的类型、事件目标等。在page-bus的示例中,当事件触发时,会向所有监听该事件的函数传递一个包含事件信息的参数。 知识点八:JSON.parse()和JSON.stringify() 在page-bus模块中,可能会使用JSON.parse()方法来解析存储在localStorage中的字符串数据,并使用JSON.stringify()方法将对象转换成字符串形式存储。这两个方法是处理JSON数据的标准方法,JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。 知识点九:模块化编程 模块化编程是一种将程序分割为独立的、可复用的模块的方式,每个模块都有特定的功能。page-bus模块化的方式允许开发者只使用他们需要的功能,而不是整个库,这样可以减小程序的大小,提高加载速度,并且便于维护和测试。