Ajax对Vivaldi的调用需要越来越长的时间才能重新加载页面



在我的Javascript/jQuery应用程序中,我进行了一个Ajax调用,如下所示:

var t1 = new Date().getTime();
$(target).load(url,function() {
var t2 = (new Date().getTime() - t1) / 1000;
console.log("ajax call took "+t2+" secs")
});

在Vivaldi浏览器中,每次我调用代码时,调用时间都会越来越长:

ajax call took 0.917 secs
ajax call took 1.013 secs
ajax call took 1.179 secs
ajax call took 1.263 secs
ajax call took 1.3 secs
ajax call took 1.668 secs
...

直到需要几秒钟。

当我手动刷新页面时,时间似乎被重置了。

问题不在服务器端,因为服务器端代码所花费的时间没有变化。

此外,Chrome、Firefox或Edge上也不会出现这种情况。

有什么建议吗?

我想我已经找到了问题的真正根源。在调用.load((之前,我将url推送到浏览器的会话历史堆栈中。为了清楚起见,我在代码中省略了这一行,但现在看来这就是问题的根源:

window.history.pushState({url:url}, null, url);
var t1 = new Date().getTime();
...

如果我注释掉pushState((行,那么ajax调用的时间是恒定的,正如预期的那样。

同样,这种情况只发生在维瓦尔第身上,这似乎是一个真正的问题。

最新更新