【问题标题】:Disable the Cache Busting in Dynamically Linked External Javascript Files?在动态链接的外部 Javascript 文件中禁用缓存清除?
【发布时间】:2011-10-04 17:51:36
【问题描述】:

当通过包含外部链接 Javascript 文件的 AJAX 加载内容或使用 jQuery.getScript() 函数调用时,链接的 Javascript 文件会附加一个缓存破坏参数,以防止文件被浏览器缓存。

因此,它不是写<script src="/js/foo.js"> 之类的东西,而是写<script src="/js/foo.js?_=ts2477874287"> 之类的东西,导致每次都重新加载脚本。

有没有办法禁用它并在文件加载时缓存文件?

【问题讨论】:

    标签: javascript jquery browser-cache external-js


    【解决方案1】:

    我不知道getScript,但cache 是一个可以在.ajax() 参数映射中设置的参数。脚本默认为假,但您可以将其翻转为真。一旦为 false,它就不会附加缓存清除查询字符串。

    [根据评论更新]

    【讨论】:

    • 我认为你的真/假是相反的。缓存的默认值为 true,dataType 'script' 和 'jsonp' 的默认值为 false。因此将其翻转为真,它应该避免缓存破坏参数吗? - 他们似乎没有办法在 getScript 中执行此操作,不幸的是它仍然无法帮助我弄清楚如何覆盖通用 <script> 标签(即不通过 ajax 调用加载),所以唯一的事情我目前能想到的是,对于所有带有链接的外部 JS 文件的动态加载内容,我必须使用 jQuery.ajax 并将缓存设置为 true。
    • 是的,我直接记在脑海里,但把它写下来了。谢谢!我无法理解您对通用脚本标签的意思,但这可能是我的问题。
    • 不,这在我身上。我不清楚。假设我正在使用 jquery.load('mypage.html'); mypage.html 包含 HTML 以及链接脚本:<script src="./js/foo.js"> 但即使这样也能获取缓存破坏器参数。
    • 哦,这很有趣。唉,我对此一无所知。
    猜你喜欢
    • 2010-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-15
    • 1970-01-01
    • 2015-09-30
    • 2022-11-28
    • 2011-11-11
    相关资源
    最近更新 更多