seaJs学习笔记之seaJs的异步加载和加载多个js文件

  到目前为止,seaJs的大部分使用方法已经为大家介绍完了,有关javascript的模块化大部分功能也已经向大家介绍完了。下面再向大家深入的介绍一下seaJs。

  Define除了可以对回调函数进行操作之外,还可以对数据进行加载。Define中的第三个参数module主要是辅助调试的作用,它是对模块内部进行调试作用。可以通过module可以获得这个模块的id,可以获取到这个模块依赖哪些模块的数组等辅助性的功能在这里不做过多介绍。

  在require的接口也提供了异步的接口(require.async())。那么这种异步的接口和同步的接口有什么区别呢?比如同步的接口要是想继续执行下面的函数方法,必须得需要同步的js文件加载好了才可以往下进行。那么异步的形式,有可能没加载完成就继续执行下面的代码了,是个异步的形式。所以模块化提供了两种依赖方式,一种是同步的(require()),一种是异步的(require.async())。异步的好处就是可以不用去等待更长的时间。就像之前做过的webQQ的一些依赖就可以用异步的来进行。代码还是之前的在这里就不粘贴了,想了解代码的小伙伴儿去前面翻一翻就能找到了。只看网络加载js的情况。如下图(图1-1)


seaJs学习笔记之seaJs的深入了解

图1-1


  从上图不难看出scale2.js已经加载好了。这个js就可以异步的来做。因为我们点击按钮的时候才会出来。到这个页面的时候不一定会点击,所以scale2.js就可以异步的去加载。所以就可以改成异步的。


  异步加载scale2.js的main7.js的javascript代码

//A小伙伴儿开发的模块

define(function  (require, exports, module) {
	var oInp = document.getElementById("inp1");
	var oDiv1 = document.getElementById("div1");
	var oDiv2 = document.getElementById("div2");
	var oDiv3 = document.getElementById("div3");
	
	//A小伙伴儿通过依赖require进行调用,依赖B小伙伴儿开发的drag.js
	require("./drag3.js").drag(oDiv3);

	//A小伙伴儿开发的弹层
	oInp.onclick = function  () {

		oDiv1.style.display = "block";

		//调取C小伙伴儿的拖拽改变层大小模块
		//require("./scale2.js").scale(oDiv1, oDiv2);

		//异步进行加载scale2.js,不点击不加载
		require.async("./scale2.js", function  (ex) {
			ex.scale(oDiv1, oDiv2);
		})

	}

})

  异步加载scale2.js的HTML代码

<!doctype html>
<html dir="ltr" lang="zh-CN">
<head>
<meta charset="utf-8">
<title>梦龙小站</title>
<style type="text/css">
#div1 {width:200px;height:200px;background:red;position:absolute;display:none;}
#div2 {width:30px;height:30px;background:yellow;position:absolute;right:0;bottom:0;}
#div3 {width:200px;height:200px;position:absolute;left:400px;top:0;position:absolute;background:green;}
</style>
<!-- 引入seaJs -->
<script type="text/javascript" src="sea/sea.js"></script>
<!-- 引入主程序 -->
<script type="text/javascript">
seajs.use("./js/main7.js")
</script>
</head>
<body>
<input type="button" value="点击" id="inp1" />
<div id="div1">
	<div id="div2"></div>
</div>
<div id="div3"></div>
</body>
</html>

  异步加载scale2.js的预览地址


  http://localhost/seaJs/j/ex/g.html


  异步加载scale2.js的网络加载js图

seaJs学习笔记之seaJs的深入了解


  刷新不难看出,刚刷新完已经看不到scale2.js的加载了。只有点击之后才能看到。这样我们可以看做是按需载入。这样对一些大型的开发,有些开始不用就可以稍后加载进来,让加载的时间缩短很多。

  接下来再说说seajs.use。Seajs.use不仅可以加载js文件,加载css 文件也是可以的,包括也可以加载多个js文件。小例子如下


  加载多个js的oA.js的javascript代码

define(function  (require, exports, module) {
	function oA () {
		console.log(1)
	}
	exports.oA = oA;
})

  加载多个js的oB.js的javascript代码

define(function  (require, exports, module) {
	function oB () {
		console.log(2)
	}
	exports.oB = oB;
})

  加载多个js的HTML代码

<!doctype html>
<html dir="ltr" lang="zh-CN">
<head>
<meta charset="utf-8">
<title>梦龙小站</title>
<!-- 引入seaJs -->
<script type="text/javascript" src="sea/sea.js"></script>
<!-- 引入主程序 -->
<script type="text/javascript">
seajs.use(["./js/oA.js", "./js/oB.js"], function  (ex1, ex2) {
	ex1.oA();
	ex2.oB();
})
</script>
</head>
<body>
</body>
</html>

  加载多个js的预览地址


  http://www.leemagnum.com/seaJs/j/ex/h.html



  加载多个js的预览效果

seaJs学习笔记之seaJs的深入了解


  刷新不难看出,已经分别调到oA和oB的函数了。seaJs学习笔记之seaJs的异步加载和加载多个js文件就为大家介绍到这里。感谢大家对梦龙小站的支持,更多有关seaJs的相关内容敬请关注seaJs学习笔记的更新。


  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: jfinal2.0是一款基于Java语言的轻量级开源Web应用框架。它具有简单易用、快速开发、高效稳定等特点。采用了MVC架构模式,通过注解方式配置路由,可以实现快速、灵活地进行控制器的映射。同时,它也支持AOP、ORM等常用的开发模式,通过简化繁琐的代码操作,提高了开发效率。 bootstrap是一款HTML、CSS和JavaScript框架,用于开发响应式、移动设备优先的网站和Web应用。它提供了丰富的CSS样式和JavaScript插件,可以快速搭建出漂亮的、兼容性良好的界面。同时,bootstrap还支持自定义主题、响应式布局等功能,非常适合用于快速构建用户友好的界面。 seajs是一款用于JavaScript模块化开发的框架。它采用了CMD规范,通过define和require等方法对模块进行定义和引用。seajs可以帮助开发人员管理和加载模块,实现代码的模块化,提高了代码的可维护性和复用性。除此之外,seajs还支持插件机制、异步加载等功能,更好地适应了复杂的Web应用开发需求。 fullcalender.js是一款基于JavaScript和jQuery的全功能日历插件。它提供了丰富的功能,如日程管理、事件编辑、拖拽操作等。同时,fullcalender.js还支持各种视图模式的切换,如月、周、日视图,并且支持自定义样式和事件处理函数,可以方便地适应各种日历需求。使用fullcalender.js可以使用户在Web应用中更加方便地管理和查看日期和事件信息。 ### 回答2: jfinal2.0是一种基于Java的轻量级MVC框架,它具有简单易用、高效快速的特点。通过JFinal2.0,开发人员可以快速搭建Java Web应用程序,并且具有良好的扩展性和灵活性。 Bootstrap是一种前端开发框架,它提供了丰富的组件和样式,可以帮助开发人员快速构建美观且响应式的网页。通过Bootstrap,开发人员可以使用预定义的样式和布局,使网页在不同的设备上显示效果一致。 Seajs是一种模块加载器,它可以帮助开发人员更好地组织和管理JavaScript代码。通过Seajs,开发人员可以将代码分割成独立的模块,通过异步加载的方式进行模块依赖管理,提高前端开发的效率。 FullCalendar.js是一种用于显示和操作日历的JavaScript库。它可以帮助开发人员在网页中嵌入交互式的日历控件,并且支持事件的添加、编辑和删除等功能。通过FullCalendar.js,开发人员可以轻松实现日历功能,例如会议安排、活动管理等。 综上所述,jfinal2.0、bootstrap、seajs和fullcalender.js都是在不同场景中用于简化开发工作的工具和框架。它们可以使开发人员更高效地开发应用程序,并提供了丰富的功能和易用的界面,为用户提供更好的体验。 ### 回答3: JFinal 2.0是一款基于Java语言的开源Web开发框架,它提供了简单易用的API和插件机制,可以帮助开发者快速构建高性能的Web应用程序。JFinal 2.0具有轻量级和灵活的特点,拥有良好的MVC架构和面向切面编程的支持。它还提供了丰富的插件来扩展应用的功能,例如插件管理、权限控制、缓存管理等。JFinal 2.0还集成了Bootstrap、Sea.js和FullCalendar.js等优秀的前端框架和组件,使开发者可以更方便地实现各种前端交互效果和页面布局。 Bootstrap是一款开源的前端框架,它提供了丰富的CSS和JavaScript组件,能够帮助开发者快速构建响应式的Web页面。Bootstrap具有简洁美观的设计风格和灵活的布局系统,可以适应不同屏幕大小的设备,并提供了丰富的样式和组件,例如按钮、表单、导航条等,可以帮助开发者快速构建出现代化的Web界面。 Sea.js是一款用于浏览器端JavaScript模块化开发的工具。它采用的是CMD规范,可以将JavaScript代码按照模块化的方式进行组织和管理,提供了便捷的模块定义和加载机制。Sea.js还提供了丰富的插件系统和调试工具,可以帮助开发者更高效地进行JavaScript开发。 FullCalendar.js是一款功能强大的日历插件,它基于jQuery开发,提供了丰富的日历展示和日程管理功能。FullCalendar.js可以将日历事件以可视化的方式展示,并支持日程的拖拽和编辑功能,可以方便地进行日程的增删改查操作。FullCalendar.js还提供了多种日历视图和自定义配置选项,可以适应不同的日程管理需求。 综上所述,JFinal 2.0结合Bootstrap、Sea.js和FullCalendar.js等前端框架和组件,可以帮助开发者高效地构建性能优越、界面美观、功能丰富的Web应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值