gpt4 book ai didi

javascript - Opera 在第一次加载页面时发出两次 ajax 请求

转载 作者:行者123 更新时间:2023-11-30 06:38:10 26 4
gpt4 key购买 nike

我在歌剧中遇到了一个小问题。我无法在其他浏览器中复制它。

我有一个正在加载的页面。页面加载后,我使用 JavaScript 发出 ajax 请求以 json 格式加载一些信息(我使用的是 jQuery)。
问题是 Opera 发出了两次 ajax 请求。在 Opera Dragonfly 中,它向我显示它只发出了 1 个请求,但我的 http 服务器说的不同。

请求的页面是这样的:http://localhost/session&_=1352301441410 其中最后一个数字是随机的。

我还添加了以下响应 header :

Expires: Mon, 26 Jul 1997 05:00:00 GMT
Last-Modified: Wed, 07 Nov 2012 15:17:22 GMT
Cache-Control: no-store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Pragma: no-cache

我认为问题与缓存有关,因为只有在第一次加载页面或清除缓存时才会出现这种情况。
我正在使用最新的歌剧:Opera 12.10

在其他浏览器上一切正常。

最佳答案

我前段时间在 Chrome 上发现了类似的问题。它调用了同一个函数两次(但它在调试器的时间轴中只显示了一次。为了解决它,我使用了一个变量,该变量在调用函数时立即设置为 1,并在完成时设置为 0。的。当然,如果变量为1,则不会调用该函数。调用该函数的代码片段是这样的:

if (security_var == 0)
{
security_var = 1;
function_whatever();
}
else
{
alert('Function called while variable is 1');
}

虽然函数将是这样的:

function function_whatever()
{
//the code bla bla bla
//.....

security_var = 0;
}

请记住,如果您的函数有其他退出方式,您也应该将 security_var = 0; 放在那里 :) 这不是避免问题的最佳方式(应该,例如,无论出于何种原因你的函数结束,你可能会发现自己无法再次启动它,因为变量设置为 1),但它可以用于测试目的;警报让您验证它。

关于javascript - Opera 在第一次加载页面时发出两次 ajax 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13272724/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com