var js = new AsyncJs();var func = js.Build(function () {var a = _$Async({url: "",success: function () {}});var b = _$Async({url: "",success: function () {}});var c = _$Async({url: "",success: function () {}});}); eval(func);a,b,c会按顺序执行,且线程不会阻塞。new Thread(() =>{//dosomething});4.简单易扩展。(请将所有要执行的方法用_$Async‘包住") var a = _$Async(function () {return 1;});2._$Async();必须要以‘;"结尾。 function Test() {var TestMethod = function () {alert(1);};var func = js.Build(function () {TestMethod();});}请使用 function Test() {var TestMethod = function () {alert(1);};var func = js.Build(function () {_$Async(function () {TestMethod();});});}也许大家会好奇,到底如何实现的?又或者为什么不将eval(r)封装起来?<head runat="server"><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title></title><script src="jquery-1.8.2.min.js"></script><script src="AsyncJavaScript.js"></script><script>function Show() {var js = new AsyncJs();var url = "WebForm1.aspx";var func = js.Build(function () {_$Async(function () {alert("点击后开始第一次ajax请求");});_$Async({url: url,data: { val: "第一次ajax请求" },success: function (data) {alert("第一次请求结束,结果:" + data);}});_$Async(function () {alert("点击后开始第二次ajax请求");});var result = _$Async({url: url,data: { val: "第二次ajax请求" },success: function (data) {return data;}});_$Async(function () {alert("第二次请求结束,结果:" + result);});});eval(func);}</script></head><body><form id="form1" runat="server"><div><input type="button" onclick="Show()" value="查询" /><input type="text" /></div></form></body></html>后台C#代码 protected void Page_Load(object sender, EventArgs e){string val = Request.QueryString["val"];if (!string.IsNullOrEmpty(val)){Thread.Sleep(2000);Response.Write(val + "返回结果");Response.End();}}效果图:
可以看到完全是按顺序执行,并且线程无阻塞。
以上就是介绍了异步JS框架的作用以及实现方法,希望对大家的学习有所帮助,真正理解异步js的重要性。