Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript chrome中的JS文件永远不会被缓存_Javascript_Asp.net Mvc_Http_Google Chrome_Caching - Fatal编程技术网

Javascript chrome中的JS文件永远不会被缓存

Javascript chrome中的JS文件永远不会被缓存,javascript,asp.net-mvc,http,google-chrome,caching,Javascript,Asp.net Mvc,Http,Google Chrome,Caching,我在服务器上动态创建包含翻译字符串的javascript文件。 当我查看chrome inspector时,这个文件永远不会被缓存(脚本文件夹中的其他实际JS文件也会被缓存) *为什么不是呢?* 以下是观点: <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<dynamic>" %> <% string culturecode = ViewBag.JSCulture; %&g

我在服务器上动态创建包含翻译字符串的javascript文件。 当我查看chrome inspector时,这个文件永远不会被缓存(脚本文件夹中的其他实际JS文件也会被缓存) *为什么不是呢?*

以下是观点:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<dynamic>" %>
<%
    string culturecode = ViewBag.JSCulture;
%>
var translations = <%=new System.Web.Script.Serialization.JavaScriptSerializer().Serialize((ViewBag.Translate as List<ERPManager.TranslationService.FlatTranslation>).Where(x=>x.CultureCode==culturecode).ToDictionary(t=>t.Key,f=>f.Value)) %>;
下面是get返回的文件的预览:它基本上只是一个键值翻译字典

var translations = {"vertaald":"Vertaald","gerelateerd":"Gerelateerd","details":"Details"};

听起来你想要的是过期的

您可以在MVC代码中设置:

[HttpGet]        
public ActionResult TranslateJS(string culturecode) {
   ViewBag.JSCulture = culturecode;
   Response.ContentType = "text/javascript";
   Response.Expires = (60*24);//24 hours
   return PartialView("TranslateJS");
}

请记住,如果设置了expires标头,则在缓存内容“过期”之前,浏览器不会再次请求文件。小心使用

您希望它缓存多长时间?这会经常改变吗?就浏览器而言,这个文件永远不会改变,所以应该永远缓存,但我可以满足于每天/每周退出
Cache-Control:private
Content-Length:10987
Content-Type:text/javascript; charset=utf-8
Date:Thu, 04 Apr 2013 10:15:11 GMT
Server:Microsoft-IIS/7.5
X-AspNet-Version:4.0.30319
X-AspNetMvc-Version:3.0
X-Powered-By:ASP.NET
var translations = {"vertaald":"Vertaald","gerelateerd":"Gerelateerd","details":"Details"};
[HttpGet]        
public ActionResult TranslateJS(string culturecode) {
   ViewBag.JSCulture = culturecode;
   Response.ContentType = "text/javascript";
   Response.Expires = (60*24);//24 hours
   return PartialView("TranslateJS");
}