×

requirejs s require

如何使用requirejs加载html?什么是iSCsi

admin admin 发表于2022-05-09 17:31:41 浏览113 评论0

抢沙发发表评论

如何使用requirejs加载html

在前端模块化的时候,不仅仅是js需要进行模块化管理,html有时候也需要模块化管理。这里就介绍下如何通过requirejs,实现html代码的模块化开发。如何使用requirejs加载htmlReuqirejs有一个text的插件,它可以读取指定文件的内容,读取到的内容就是文本。如何下载text插件第一种方法,可以通过npm下载:npm install requirejs/text第二种方法,也可以直接去官方github上面直接下载。直接拷贝内容到text.js中即可。如何安装text插件在requirejs的main.js中配置text插件的依赖即可,跟jquery差不多,只要保证能通过正常的加载方式加载到它就行。requirejs.config({baseUrl: ’./’,paths: {’text’:path+’/require/text’,...},shim: {...}});也可以直接放在baseUrl里面。如何使用text在目标模块中,按照下面的语法即可:define(function(require){var html = require(“text!html/test.html“);console.log(html);});或者define([“text!html/test.html“],function(html){console.log(html);});如何进行html的模块化开发?看过上面你已经会使用text了,但是仍然不知道怎么组织前端代码。举个栗子:博客园的网站页面会根据上方的导航跳转到不同的页面。如果是在单页面中,很容易想到原始的做法是,导航的按钮对应不同的div,点击那个按钮,就显示与之对应的div;其他的div则隐藏掉。那么,前端的代码可能会这样:《html》《body》《nav》导航按钮1、导航按钮2、导航按钮3《/nav》《div style=“display:block“》按钮1对应的页面《/div》《div style=“display:none“》按钮2对应的页面《/div》《div style=“display:none“》按钮3对应的页面《/div》《/body》《/html》这样的代码会很杂乱...而且前端Html会很长...不利于维护。那么有了reuqirejs的text插件以后,就可以这样了:《html》《body》《nav》导航按钮1、导航按钮2、导航按钮3《/nav》《div id=“target“》《/div》《/body》《/html》然后在对应的模块中:$(’#target’).html(require(“text!目标按钮对应的页面.html“));这样就随性多了吧!前端代码也可以跟着模块一起有效的管理了!不过需要注意的是:这种方式会导致Jquery绑定的事件失效——所以一定要在html()方法后面,重新绑定下事件。

什么是iSCsi

iSCSI是一种基于因特网及SCSI-3协议下的存储技术,Internet小型计算机系统接口,又称为IP-SAN,由IETF提出,并于2003年2月11日成为正式的标准。iSCSI利用了TCP/IP的port860和3260作为沟通的渠道。透过两部计算机之间利用iSCSI的协议来交换SCSI命令,让计算机可以透过高速的局域网集线来把SAN模拟成为本地的储存装置。扩展资料:iSCSI使用TCP/IP协议(一般使用TCP端口860和3260)。本质上,iSCSI让两个主机通过IP网络相互协商然后交换SCSI命令。这样一来,iSCSI就是用广域网仿真了一个常用的高性能本地存储总线,从而创建了一个存储局域网(SAN)。不像某些SAN协议,iSCSI不需要专用的电缆;它可以在已有的交换和IP基础架构上运行。然而,如果不使用专用的网络或者子网(LAN或者VLAN),iSCSISAN的部署性能可能会严重下降。于是,iSCSI常常被认为是光纤通道(FiberChannel)的一个低成本替代方法,而光纤通道是需要专用的基础架构的。但是,基于以太网的光纤通道(FCoE)则不需要专用的基础架构。参考资料:百度百科-iSCSI

c语言中const 是什么意思

  1. 可以定义const常量,具有不可变性。例如:const int Max=100; Max++会产生错误; 

  2. 便于进行类型检查,使编译器对处理内容有更多了解,消除了一些隐患。例如: void f(const int i) { .........} 编译器就会知道i是一个常量,不允许修改; 

  3. 可以避免意义模糊的数字出现,同样可以很方便地进行参数的调整和修改。 同宏定义一样,可以做到不变则已,一变都变!如(1)中,如果想修改Max的内容,只需要它修改成:const int Max=you want;即可!-require

  4. 可以保护被修饰的东西,防止意外的修改,增强程序的健壮性。 还是上面的例子,如果在函数体内修改了i,编译器就会报错;

    例如: void f(const int i) { i=10;//error! }

  5. 可以节省空间,避免不必要的内存分配。 例如: 

#define PI 3.14159 //常量宏const double Pi=3.14159; //此时并未将Pi放入RAM中 ......double i=Pi; //此时为Pi分配内存,以后不再分配!double I=PI; //编译期间进行宏替换,分配内存double j=Pi; //没有内存分配double J=PI; //再进行宏替换,又一次分配内存!const定义常量从汇编的角度来看,只是给出了对应的内存地址,而不是像#define一样给出的是立即数,所以,const定义的常量在程序运行过程中只有一份拷贝,而#define定义的常量在内存中有若干份拷贝。 -s

6. 提高了效率。编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储与读内存的操作,使得它的效率也很高。

扩展资料:const是一个C语言(ANSI C)的关键字,具有着举足轻重的地位。它限定一个变量不允许被改变,产生静态作用。使用const在一定程度上可以提高程序的安全性和可靠性。另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一定帮助。另外CONST在其它编程语言中也有出现,例如Pascal、C++、PHP5、B#.net、HC08 C、C#等。-require

参考资料:const百度百科