浏览器如何跨选项卡处理AJAX请求 - javascript

我遇到了无法真正解释的情况,并且开始认为这可能是我误解了浏览器如何处理我的AJAX请求的方式。

作为参考,您可以假设我在Apache服务器上运行Codeigniter,并使用jQuery触发了我的AJAX请求。有问题的浏览器是Chrome。

我的应用程序中有一个页面,旨在显示一些不同的图形。当您导航到此页面时,有关要在页面上显示的图形的特定信息将作为URL中的GET参数传递给服务器。这些参数用于触发一些数据的弹性搜索查询,然后对该数据进行处理并传递回客户端以渲染一些图形。呈现单个页面时,此方法效果很好。

但是,如果打开了几个选项卡。假设您有时会打开五个或六个选项卡,这些选项卡应全部呈现不同的图形(可能有些不可预测)。一些选项卡将呈现相同的数据。我想知道是否由于某些原因打开多个标签。 Chrome正在多个标签中接收AJAX响应。它只是看到一个响应返回,将其发送到每个选项卡,而不管它是否是正确的响应,这导致图形在多个选项卡中显示相同。

我的主要问题是chrome(或其他任何浏览器)如何处理多个标签之间的连接。显然,由于我们能够保留会话,因此将其视为单个连接。另外,如何识别AJAX请求,是否有助于传递唯一的标识符并尝试监听呢?但这似乎不起作用,因为(如果我是对的话)浏览器似乎只是在选择返回的第一个响应并接受它。打开多个选项卡并等待响应时是否感到困惑并认识到已经建立了连接?

这么多问题,但是如果有人可以提供任何见解或帮助解决该问题,将不胜感激。

编辑:明确地说,我对如何防止这种行为以及正确接收特定于请求所来自选项卡的数据最感兴趣。

参考方案

在我的一些应用中,我们遇到了类似的问题。我们所做的工作是创建新窗口而不是标签,以便每个浏览器都处于自己的会话中。这样,AJAX不会感到困惑。我们设法修复需要基于标签的设计的其他应用程序的唯一其他方法是为每个标签创建唯一的会话ID。这样,AJAX可以指向该特定的会话ID。顺便说一句,制表符方式要求html5的会话存储起作用。

jQuery val函数在隐藏字段上不起作用? - javascript

这是我的HTML代码:<div style='display:none;' id='allformid'> <div> <form action='#'> <input type='text' name='name' …

javascript popupwindow之后的行如何工作? - javascript

好的,我有一个来自后面代码的方法,可以创建一个popupwindow。然后有一行代码要在那之后执行,我想知道那行代码何时执行,是在使用popupwindow之后执行还是在创建popupwindow之后执行?例如:void exPopupWindowMethod() { string scr = "window.open('exampleP…

在PHP服务器上从HTML进行数据挖掘 - javascript

我使用jQuery创建了一个不错的库,该库在浏览器中运行,并且基本上完成了从各种html页面中挖掘任意数据的任务。我想将此库迁移到运行PHP的Apache服务器并在服务器端运行它。但是,我不知道与PHP兼容的可靠浏览器模拟器。最坏的情况是在PHP中再次实现整个过程。该解决方案将涉及:发送请求解析HTML实现基本功能以执行Java / jQuery标准执行的任…

Javascript-Urls的奇怪字符串比较行为 - javascript

最近,在编写我无法理解的javascript时遇到了字符串比较的问题。我从完全相同的网址创建了两个字符串,当我比较它们时返回false,但是在重新分配相同的字符串后,比较返回true。这是我的示例:var str1 = "http://google.com/"; var str2 = "http://google.com‏/&#…

jQuery File Upload-逐一上传 - javascript

我正在使用jQuery-File-Upload在我的网站上进行多次上传。我真正想做的是一个接一个地上传。例如:我发送了3个文件[1,2,3]。1个文件开始上载过程,而其他文件则暂停。完成后,上传将校准AJAX以将文件保存在数据库中。当从文件1返回成功消息时,文件2开始上载,而文件3保持暂停状态。有没有办法更改代码以便他们这样做? 参考方案 您可以尝试以下方法…