绕过 XMLHttpRequests 的缓存

Cache bypassing for XMLHttpRequests

我想在发出 XMLHttpRequest 时绕过缓存。多亏了我找到了解决方案:

https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest#bypassing_the_cache

但是我没有完全理解解决方案...

替换: request.open('GET', url);

来自: request.open('GET', url + ((/\?/).test(url) ? "&" : "?") + (new Date()).getTime());

效果很好,但我不明白:

感谢帮助

我们从中调用方法“test(url)”的对象 (/\?/) 是什么?

它是一个正则表达式文字,test() is a method of the RegExp 从该文字创建的实例。它通过检查 url 是否已经具有参数列表定界符 ?

来检查 url 是否已经具有参数列表

在什么情况下我必须加上“?”在这种情况下,在附加 Date().getTime()?

之前,我必须在 urls 的末尾放置“&”

这取决于 url 是否有参数列表。因此,如果您的 url 是:

http://example.com/somepage.php

没有参数列表,您需要添加 ? 来表示 url 参数列表的开始

http://example.com/somepage.php?1234567

如果你的 url 已经有一个像上面那样的 ? 你需要添加 & 来表示列表中的不同参数,这样你就不会更改值先前存在的参数

http://example.com/somepage.php?someparam=somevalue&12345678