【问题标题】:Cache bypassing for XMLHttpRequestsXMLHttpRequests 的缓存绕过
【发布时间】:2021-10-23 01:57:24
【问题描述】:

我想在发出 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)”的对象(/\?/)是什么?

  • 在什么情况下我必须输入“?”在这种情况下我必须把“&”放在 url 结尾,在附加 Date().getTime()?

感谢您的帮助

【问题讨论】:

    标签: javascript caching xmlhttprequest


    【解决方案1】:

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

    这是一个正则表达式文字,test() 是从该文字创建的 RegExp 实例的方法。它通过检查url 是否已经有参数列表分隔符? 来检查url 是否已经有一个参数列表

    在什么情况下我必须输入“?”在这种情况下,我必须在 URL 末尾加上“&”,然后再附加 Date().getTime()?

    这取决于 url 是否有参数列表。所以如果你的url 是:

    http://example.com/somepage.php
    

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2010-09-26
      • 2021-01-29
      • 2011-12-23
      • 2011-10-27
      • 1970-01-01
      • 1970-01-01
      • 2010-10-19
      • 2010-10-14
      • 1970-01-01
      相关资源
      最近更新 更多