长轮询的实现是用xmlhttprequest递归得到的,页面一旦加入了这种轮询方式,其他地方的ajax请求就没反应了,比如滚动到页底自动加载新文章。查了资料,据说HTTP1.1是不允许同一时间客户端向同一服务器建立2个http连接。如何解决?
2 回答
翻翻过去那场雪
TA贡献2065条经验 获得超14个赞
据说HTTP1.1是不允许同一时间客户端向同一服务器建立2个http连接这个说法不对实际上是不能并发访问同一个站点使用了session的页面,因为访问A页面时,session被锁住了,B页面要等A页面结束释放锁才能被执行。解决方法就是不用session,或者session使用后立刻释放(php使用session_write_close释放session锁)回过一次了,再回一次
UYOU
TA贡献1878条经验 获得超4个赞
直接终止轮询返回当前结果(轮询结果,可能为空),发起其他地方的ajax请求,得到结果,然后再开个轮询呗(可能我这想法太naive了),或者改需求哈哈。其实用轮询的方式实现serverpush(一般都是这个作用吧?),不如用socket,不过好像其标准还不是太清晰。
添加回答
举报
0/150
提交
取消
