请问jQuery的ajax在getscript时如何去掉url后面的随机数?

2012-05-23 14:35:30 +08:00
 sdjl
就算是设置了 cache: true, ifModifided true

在请求js文件时总是会在url后带一个随机数, 导致不能使用缓存文件.

请问:
1 可有不修改js源码, 不使用其它库的解决方案?

2 如果不能在前端解决, 那么可以通过nginx配置解决么?
6380 次点击
所在节点    北京
11 条回复
binux
2012-05-23 14:45:58 +08:00
你在哪设置的cache: ture?

try:

$.ajax({
type: 'GET',
dataType: 'script',
url: "http://127.0.0.1/asdf.js",
cache: true,
})
ylfighter
2012-05-23 14:49:45 +08:00
随机数不是你自己加的么?
Julyyq
2012-05-23 16:24:42 +08:00
去掉随机数不就可以缓存了吗?
sdjl
2012-05-23 17:21:35 +08:00
我用的是 $.ajax({cache:true,...})

他会有一个随机数, 但是我不想要这个随机数
binux
2012-05-23 17:25:41 +08:00
@sdjl 无法重现
aligo
2012-05-23 17:28:12 +08:00
ajax请求就是故意要那个随机数的啊。。。
如果每次的结果都一样就不需要ajax啊

我觉得你需要的应该不是getScript而是RequireJS
pppanda
2012-05-23 17:57:18 +08:00
默认没有时间戳(随机数)的吧,可能是哪里配置的问题
aa88kk
2012-05-23 18:17:56 +08:00
你的CACHE应该在其他地方设置过, 否则为false的话,肯定不会添加时间戳.
reaky
2012-05-23 19:03:37 +08:00
"Be default, $.getScript() sets the cache setting to false."
http://api.jquery.com/jQuery.getScript/

你肯定是没有设置对,仔细看看. 试过cache为false有,为true是没有的.
sdjl
2012-05-24 10:55:08 +08:00
谢谢大家了, 已经解决了, 我在调用$.ajax之前用
$.ajaxSetup({
cache: true
});

设置后就没有随机数了, 不过我觉得很奇怪啊, 调用ajax这个函数的时候我明明指定了 cache:true的... :)
sdjl
2012-05-24 10:56:22 +08:00
顺便说, 我主要是在做 http://lengxiaohua.com 这个网站遇到这个问题的~~~等我回头压缩一下js...

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/37042

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX