易截截图软件、单文件、免安装、纯绿色、仅160KB

关于javascript模块加载的思索

最近一直为此头痛,姑且把我能想到的东西都写出来吧。由于不是简单把页面上手写的script转为javascript添加,我们需要考虑的东西主要有两个:加载的顺序,加载前后脚本的运作。
先说第一个,假如我们已有一加载机制了,要加载一个新模块,当然新模块是在另一个JS文件中。这时,我们可以描述为:
loader ---> a.js
这个加载过程可能会出些意外,如服务器忙碌等问题,暂时无法为我们生成JS文件,我们就需要再次请求,但也可能永远请求不上,因为那是死链,后台的人傻了脑袋,改了地址也不通知声,我们需要一个截止期限。这时,我们可以描述为:
loader ---> a.js ---> a.js ---> .....----> timeout
如果那个模块要依赖于其他模块呢,那么我就必须在加载它之前加载其他模块了。这时,我们可以描述为:
loader ---> b.js ---> a.js ---> .....----> timeout
但记录这些依赖关系的信息肯定在a.js上,而不在loader上,通过a.js我们才能得知b.js,换言之要遵循最少知识原则(Law of Demeter)。
这个问题的解决,MochiKit兴许能给我们一些灵感吧。
另一个问题是javascript是单线程的,而加载需要一个时间,并且通常是异步的。当我们执行加载函数后,可能JS引擎会继续执行下面需要新模块支援的代码片断,由于这时新模块还没有加载完毕,当要用到新模块的属性方法就会报错。解决方法有二,强制上面的loader活动的时间与加载时间一样长,换言之,创造一个阻塞的环境。这容易实现,可参照dojo。不过如果加载的模块过多,难免会造成body标签内一片空白。另一个方法是使用回调函数,那么就要求我们把接着下来的代码八卸大块,每个代码片断都是相对独立,所有逻辑都是写在一个函数体中。看上去非常不优雅,但也别无他法,这是YUI的做法。
嘛,基本上就是这样,是一个世界难题……不要问我要代码,认为没有必要搞这么复杂的同志们现在都被迫干这事呢,世事难料啊!


相关文档:

JavaScript输入框

<input type="text" onblur="if (value ==''){value='请输入关键字'}" onfocus="if (value =='请输入关键字'){value =''}" id="q" name="q" value="请输入关键字" style="width: 100px; height: 14px;">
......

JavaScript与DropDownList

大家都知道,.NET中一些Web服务器控件解析并编译,最终被渲染的时候,其实是转化成了普通的html控件,比如<asp:LinkButton>控件就被渲染成了<a>锚点控件,这里要讲的DropDownList控件也一样,被渲染成了普通的select控件,在如下的asp.net页面中定义了一个web服务器控件DropDownList和一个普通的select控件(主 ......

TEXTAREA 字节限制(javascript,struts 的页面标签)

//Textarea maxlength
//flag:text框名字,num:限制的字节数
  function maxLen(flag,num){
  if(document.getElementById('lastMessage').value=="0" || document.getElementById('lastMessage').value==flag){
    var i=document.getElementById(flag).value.replace(/[\u0 ......

JavaScript Cookie 的正确用法

function getCookies(name)
{
var arr = document.cookie.match(new RegExp(&quot;(^| )&quot;+name+&quot;=([^;]*)(;|$)&quot;));
if(arr != null) return unescape(arr[2]); return &#039;&#039;;
}
function setCookie(name, value, expires,
function getCookies(name)
{
var a ......

Lua与javascript的差异


Lua与javascript的差异 - [lua学习]
 
转载
http://huazjxy.blogbus.com/logs/60132016.html
Lua模拟器js方案
1.语法级模拟
lua与js语言差异
1.1注释
js 为//,lua为--.
1.2变量
js利用val来声明全局变量不存在局部变量,lua则不需要直接定位则为全局变量,local声明则为局部变量。
1.3运算符
js
+ - ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号