我正在使用MVC 2中的长轮询开发一个简单的陌生人聊天应用程序。如果我在不同的浏览器中打开应用程序,比如在IE和Mozilla中加载应用程序,那么它在我的开发机器上可以正常工作。
但是,如果我在一个浏览器(例如IE)的两个选项卡中打开应用程序,则两个选项卡都无法启动长轮询。我的意思是,有一个开始按钮来启动聊天,它会触发长轮询。在调试时,我可以看到它调用了操作。我的问题是,当我从选项卡一中点击开始按钮时,它会发送一个ajax请求(长轮询(此请求在服务器上等待直到另一个请求到来))。然后我在选项卡二中点击开始按钮时,它不会发送ajax请求,直到第一个请求从服务器返回(超时后)。
这是为什么?我读过类似浏览器会阻止多个ajax请求的文章。这是原因吗?如果我使用不同的浏览器,它就可以正常工作。问题只出现在同一浏览器的两个选项卡中。
但是,如果我在一个浏览器(例如IE)的两个选项卡中打开应用程序,则两个选项卡都无法启动长轮询。我的意思是,有一个开始按钮来启动聊天,它会触发长轮询。在调试时,我可以看到它调用了操作。我的问题是,当我从选项卡一中点击开始按钮时,它会发送一个ajax请求(长轮询(此请求在服务器上等待直到另一个请求到来))。然后我在选项卡二中点击开始按钮时,它不会发送ajax请求,直到第一个请求从服务器返回(超时后)。
这是为什么?我读过类似浏览器会阻止多个ajax请求的文章。这是原因吗?如果我使用不同的浏览器,它就可以正常工作。问题只出现在同一浏览器的两个选项卡中。
Response.Cache.SetCacheability(HttpCacheability.NoCache)
?如果请求根本没有被发出,我建议使用 fiddler 进行调试。 - emfurry