我有一些想法最近关于如何处理共享的javascript和css文件的跨网络应用程序。

在目前的网络应用程序,我的工作我得到了相当大量的不同javascript和css文件都放在一个文件夹在服务器上。一些文件是重复使用,而其他的则不是。

在生产的网站,这是相当愚蠢到有大量HTTP请求和许多千字节的不必要的javascript和冗余css正在加载。解决这当然是创建一大捆绑的文件,每页的,仅包含必要的信息,然后是最小化和发送压缩(GZIP)的客户。

有没有后顾之忧,以创建一个包javascript文件,并尽量减少他们的手如果你要做一次,但由于程序是不断维持和事变和发展,它很快变成一个头痛的问题做这个手动,同时推出新的更新的特点改变以javascript和/或css的文件生产。

什么是一个很好的方法来处理这个吗?你怎么处理这个在你的应用程序?

有帮助吗?

解决方案

你所谈论的是所谓的微小

有不同的平台和语言,以帮助这许多图书馆和助手。当你没有张贴你使用的是什么,我真的不能为您指出更符合自己的东西。

下面是对谷歌代码的一个项目 - 缩小

这里是一个例子一个.NET HTTP处理程序执行所有的这对飞。

其他提示

我建了一个库, Combres ,这正是这么做的,即缩小,同时结合等。自动检测更改本地和远程JS / CSS文件,推动最新的浏览器。它是免费和开源。检查这篇文章出来的介绍,Combres。

我处理完全相同的问题,在网站上,我发动。

最近我发现了一个名为项目的 SquishIt (见 GitHub的)。它是建立在Asp.net框架。如果你不使用asp.net,你仍然可以了解背后的他在做什么这里的原则。

SquishIt允许你创建一个名为文件的“捆绑”,然后在整个网站呈现的结合和精缩文件包。

CSS文件可分类并划分为逻辑部分(如常用的,打印对),然后你可以使用CSS的导入功能成功加载CSS文件。这些小文件重复使用也使得它可以使用客户端缓存。 当涉及到的Javascript,我觉得你可以解决在服务器端解决此问题,添加到页面的多个脚本文件,还可以动态生成脚本文件服务器端,但对于客户端缓存工作,这些部件应该有不同的和静地址。

我写了一个ASP.NET 处理前段时间,结合,压缩/minifies,gzip,并缓存的原CSS和Javascript源码文件的需求。将在三CSS文件,例如,它看起来喜欢这个标记...

<link rel="stylesheet" type="text/css"
      href="/getcss.axd?files=main;theme2;contact" />

该getcss.axd处理程序读查询字符串中和确定其文件需阅读,并缩小(在这种情况下,它看起来的文件被称为主。css,theme2.css和接触。css)。当它完成阅读该文件,并压缩,它储存的大缩小的字符串中server-side cache(RAM)几个小时。它看起来总是在缓第一,以便在随后的请求中它没有重压缩。

我喜欢这个解决方案,因为...

  • 它减少请求的数量尽可能多的
  • 没有额外的步骤都需要部署
  • 这是很容易保持

只有下面是,所有样式/脚本代码最终会被储存在服务器的存储器。但RAM是这么便宜,如今,它不是作为大的一笔交易,因为它用来进行。

此外,有一件事值得一提的是,确保查询串不是succeptible到任何有害的路径操纵(仅允许在A-Z and0-9).

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top