在我的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
......until它需要几秒钟。
当我手动刷新页面时,时间似乎被重置了。
问题不在服务器端,因为服务器端代码所消耗的时间不会改变。
而且,在Chrome、Firefox或Edge上也不会发生这种情况。
有什么建议吗?
发布于 2022-03-11 13:23:45
我想我已经找到了问题的真正根源。在调用.load()之前,我将url推到浏览器的会话历史堆栈上。为了清楚起见,我在代码中省略了这一行,但现在看来这是问题的根源:
window.history.pushState({url:url}, null, url);
var t1 = new Date().getTime();
...如果我注释掉pushState()行,那么ajax调用的时间是不变的,就像预期的那样。
同样,这种情况只发生在Vivaldi身上,这似乎是一个真正的问题。
https://stackoverflow.com/questions/71414706
复制相似问题