在ajax开发框架中,最基本的划分是服务器端与客户端。服务器端相对来说比较简单,只要是可以开发动态网页的语言都可以胜任;客户端浏览器就是jscript/javascript的天下了,好像没有看到有vbscript做的ajax客户端库。由于客户端依赖于脚本并运行在浏览器中,似乎比服务器端的可实现与可管理性还要差些。
这里我说一下ajax中的a, asynchronous调用的一些问题。如果我们在异步调用时不为方法传递任何的参数,那么这个问题也就简单甚至不存在了。但是事实上,我们开发一些稍微复杂些的功能时,对于"脚本异步并发调用参数传递"这个功能是很需要的。说的严重些,可以把这个功能看成ajax客户端框架能否真正asynchronous的基石。对于异步调用参数传递的问题,可以看我以前的一篇文章"使用匿名函数为setinterval传递参数"。虽然文中的示例很好地解决了参数传递问题,但是我们看看下面的示例,看会发现什么呢?
【相关文章:襄樊教育城域网应用案例】function foo() 【扩展阅读:计算机广域网的设计和实现】
【扩展信息:华中科大学生宿舍子网案例】{ var param = 100; window.settimeout(function() { intervalrun(param); }, 0); param = 0; }function intervalrun(times)
{ alert(times); }我们执行foo,会得到什么样的alert结果呢?100? or 0?,答案是:0。其实写过内嵌函数就知道,这里要真确的传入100,需要这样改写foo方法:
function foo()
{ var param = 100; var __param = param; window.settimeout(function() { intervalrun(__param); }, 0); param = 0; }// 这样添加一个变量来存储param就可以了,这下执行foo得到的alert结果就是:100。
上面这个修正本身没有问题,可是如果我在并发执行的情况下,就可能又有新的问题。示例代码:
... 下一页