如何在客户端系统中加载一次Javascript文件并重用它们?

时间:2010-02-20 11:10:41

标签: c# asp.net javascript jquery performance

我有一个大型应用程序,它使用javascript有很多原因。这些javascript文件包含在一些JS文件中,JS文件导入到Asp.net主页文件中。

当页面显示给用户时,这个JS文件内容(javascript函数)将添加到页面,因此一堆废弃的Javascript函数将包含在Asp.net页面中。

我正在寻找这些JS文件下载到用户计算机的方式(任何地方,例如:临时互联网文件或其他地方)和Asp.net页面使用随页面下载的功能。

我还想将1次(每个用户登录或每个Open Session)下载到用户计算机。

那么如何将JS文件下载到用户PC并在Asp.net页面中使用

4 个答案:

答案 0 :(得分:3)

评论者建议的是,所有的javascript都应放在外部文件上。根据我的理解,你在做什么:

<script language="javascript">
  your code here
 </script>

相反,你应该有。

<script src="myjavascript.js" type="text/javascript"></script>

然后您的javascript文件将由浏览器自动缓存。

MindFold还建议使用谷歌的CDN。这是一个很好的建议。当然,你只能将它用于像Jquery这样的流行图书馆。

答案 1 :(得分:1)

Karl Seguin查看ASP.NET Performance - Part 2 - YSlow如何编写HttpHandler以添加静态文件的缓存头。

我建议你阅读其他4个帖子以及ASP.Net的缓存策略。这将使您更好地了解从Web服务器向浏览器提供页面时发生的情况。

答案 2 :(得分:1)

客户端缓存很明显,取决于客户端的行为。看看http://code.google.com/speed/page-speed/docs/caching.html。一些建议是

  • 设置Expires而不是Cache-Control(因为它得到了客户更广泛的支持)。
  • 避免设置Vary标题(IE)。
  • 通过https获取文件时,请使用Cache control: public(某些版本的FF)

还有一些关于如何允许网络代理缓存的建议(并且足够有趣的建议:不要在URL中包含静态资源的查询字符串。,由他们打破拥有CDN)

答案 3 :(得分:0)

浏览器会自动为您执行此操作,无论何时浏览器下载文件(在您的情况下为js),他都会将其存储在临时目录中供以后使用,从而优化开销,同样适用于图片。

您可以使用某种CDN进一步优化它,例如Google为许多常见的JavaScript库提供了cdn。

所以,再次 - 在用户浏览器下载脚本后,他将尝试根据名称重新使用它。

因此,如果您的脚本位于同一个地方,您将免费获得此功能!