一、.aspx 的 @Page 指令上加上 Async="true"
比如:<%@ Page Async="true"%>
二、.aspx.cs 页面写类似如下代码
这里 new PageAsyncTask,使用的是 4 个参数的构造函数,使用 1 个参数那个时,它提示我要将 web.config 中的 httpRuntime 的 targetFramework 降为 4.5,我想算了,我还是用 4 个参数这种方法吧。
注意,上面是最多轮询 5 次,我改为 10,在本地、服务器测试时,都会把服务器卡得极慢。
三、Ajax 调用即可
流程是:
服务器每隔 1 秒去取数据,如果没有数据,就继续循环,为了防止客户端已经关闭还在傻傻地循环,这里作了个循环次数限定,而如果有数据,就输出客户端。
客户端拿到数据后,处理,然后继续去取。取数据期间,通过 F12 调试,会发现 Ajax 的页面,长时间处于 pending 状态。这和微信网页版的设计思路一致。