出自该贴的回复:
http://www.iteye.com/topic/161609
JSI的延迟装载和异步装载过程非常相似.
他们的实现是这样的:
1.计算出全部未装载的依赖,并将依赖加入缓存.
2.执行同步装载.
其实所有的三种装载方式,原理都是一样的,只不过非同步装载在真正装载前有个预处理.
而异步装载和延迟装载的区别也就在于预处理过程中如何缓存脚本.
异步装载就是直接xhr异步读取js文件,加入JSI的脚本缓存.
而延迟模式就略显麻烦了,如hax所言,他是通过打印一段引用脚本,脚本文件的内容就是用闭包封起来的源代码.
$JSI.addCacheScript("mypkg","hello.js",function(){eval(this.varText)/**
* helllo world 函数
*/
function hello(){
alert("hello world")
}
})
而这段脚本的生成,我们可以在脚本打包时自动生成.
如果在调试期间,我们不希望每次修改都去运行任务,我们可以用一个jsp代理或者一个servlet过滤器去做相关的文本处理,同时还可以确保转换后的脚本与源文件行数完全对应,这就是JSI对于调试友好实现的基本原理.
其中:eval(this.varText)这句时jsi里面比较关键的一点,他除了申明依赖之外,还构造了一个钩子函数.
能后外界就可以控制装载单元的内容了.如:注入装载后依赖.
分享到:
相关推荐
根据提供的信息,我们可以了解到这份文档是关于海尔液晶电视电源板(型号:0094001224B JSI-190419-050 JSI-220409-050)的原理图。这份原理图详细地展示了电源板的内部电路结构、元件布局及其连接方式等关键信息。...
本文将详细解析海尔液晶电视电源背光板0094001274E JSI-320411原理图中的关键元件及其功能、电路设计思路与工作原理,帮助读者更好地理解该背光板的工作机制,并为可能遇到的问题提供诊断和维修方面的参考。...
2. **example**:这个目录可能包含了一些示例代码或页面,用来展示JSI-full-2.0的功能和用法。开发者可以通过这些例子快速理解和学习如何使用这个项目。 3. **images**:存放图像资源的文件夹,可能包括logo、图标...
在JSI中,你可以模拟一些Node.js的特性,例如事件驱动编程和非阻塞I/O,这对于理解Node.js的工作原理及其在大型项目中的应用非常有帮助。 "jsi-modules-master"压缩包很可能是包含了一系列的练习和示例代码,涵盖了...
JSI框架提供一个无侵入的脚本库管理解决方案,和一个全面的前端开发调试、文档解析、模版编译、打包导出环境支持。 作为一个开发期间的脚本管理工具,让开发者在开发期间享受JSI带来的种种便捷,也可以作为一个运行...
为了提高用户体验和加载效率,开发人员需要采取合适的脚本按需导入(装载)策略。本文将详细探讨脚本按需导入的三种模式,并通过实例进行对比分析。 #### 二、脚本按需导入概述 脚本按需导入是一种优化技术,用于...
我们提供了培训和测试代码,以及经过训练的权重和用于JSI-GAN的数据集(train + test)。 如果您发现此存储库有用,请考虑引用我们的。 参考: Soo Ye Kim *,Jihyong Oh *和Munchurl Kim“ JSI-GAN:基于GAN的...
Jsi是带有内置websocket-server,sqlite和C -extensibility的javascript -ish解释器。 | | | 快速开始下载适用于 / 的二进制文件: wget ...
react-native-multithreading using使用JSI的React Native的快速简便的多线程处理。 安装npm install react-native-multithreading npx pod-i react-native-...Why为什么自从JSI成为主流以来,可能会有一些功能
在JSI-master这个压缩包中,我们可能找到了JSI的源代码和相关文档,这为我们提供了深入理解其工作原理的机会。源代码通常包含了实现空间索引的各种类和方法,包括但不限于以下组件: 1. **空间对象表示**:JSI需要...
通过阅读和分析这些文件,你可以深入理解项目的工作原理,学习如何组织代码、如何实现特定功能,以及如何与其他开发者协作。此外,它还可能包含README文件,提供项目介绍、安装指南和使用说明。通过研究这样的项目,...
在Android开发中,自定义控件是提升应用用户体验和界面美观度的重要手段。本文将深入探讨如何使用Canvas来实现自定义的三种方式进度条。Canvas是Android图形绘制的基础,通过它可以进行复杂的图形操作,包括线条、...
- **官方文档**:阅读OpenHarmony官方提供的详细教程和API参考,了解框架的基本用法和最佳实践。 - **示例代码**:通过分析 Arkui_ace_engine_lite-master 中的示例项目,理解框架的运行机制和组件使用。 - **社区...
JSI Wikifier OpenAPI规范 JSI Wikifier API文档存储库。链接文档: : SwaggerUI: ://jsi-eubusinessgraph.github.io/jsi-wikifier-api/swagger-ui/ 看完整规格: JSON YAML 警告:仅当Travis CI完成部署后,以上...
《西工大机械原理平面机构的力分析》学习教案主要涵盖了机械力分析的基本概念和方法,旨在帮助学生理解和掌握机械系统中的力分析技术。以下是详细的知识点解析: 1. **力的分类**: - **驱动力**:驱动机械运动的...
eccl-jsi.github.io
java程序推荐源码 ...然后添加一些矩形; 每个人都有一个ID。 final Rectangle[] rects = new Rectangle[100]; rects[0] = new Rectangle(0, 10, 0, 10); rects[1] = new Rectangle(0, 11, 1, 20); si.add
javascript sfs多个关键字请用空格分隔,最多填写5个。点击右侧Tag快速添加
描述中提到,这个压缩包内包含了一个已经开发和测试完成的JS中文转拼音插件,文件包括"pyClass.js"和"zhuanPY.js",可能是一个完整的库或模块,用于实现中文到拼音的转换功能。"说明.txt"文件应该包含了使用该插件的...
:thread: 使用JSI的React Native的快速简便的多线程处理。 安装 npm install react-native-multithreading npx pod-install 需要包括的react-native-reanimated版本。 您可以自己打补丁,也可以等到它发布后再...