2011-03-23 86 views
0

我想缓存一个非常简单的JavaScript响应。我使用的铁轨和我的意见/项目/ index.js.erb的只包含以下内容:jquery脚本请求不缓存

  alert('hi'); 

,当我要求

$.ajax({ 
    type: 'GET', 
    cache: true, 
    url : '/projects', 
    dataType: 'script' 
    }); 

我得到了弹出“HI”,我在看我的服务器将对项目#索引操作的请求记录为js。

然后无需刷新浏览器,我又

$.ajax({ 
    type: 'GET', 
    cache: true, 
    url : '/projects', 
    dataType: 'script' 
    }); 

我看到服务器仍然得到一个请求做 任何人都可以点任何东西,我可能会错过?

谢谢!

+0

您是否收到任何错误? – 2011-03-23 02:18:40

+0

不,控制台中根本没有错误。我查了firefox和chrome的控制台。并且我没有收到记录在服务器日志中的任何请求;而且我已经开始创建一个新的简单应用程序,以便其他插件/脚本或任何其他内容都不会干扰。只是一个裸体的裸机页面,现在什么也没有。 – 2011-03-23 02:19:32

+2

也许我在看jQuery文档错误,但不是getScript的第二个参数回调函数? – BStruthers 2011-03-23 02:19:47

回答

1

我发现了什么是错的。 jQuery实际上将传入的脚本用a包围,以便浏览器评估传入的代码。但缓存机制仅仅将代码保存为文本,并且当重新请求时,它将代码作为文本返回,但不对其进行评估。因此,需要明确评估代码

+0

用什么来包围传入的脚本? – 2012-12-07 06:00:34