Javascript 缩小和 HTML5 list

标签 javascript html minify offline-caching

我们创建了一个 HTML5 应用程序,它也可以在离线模式下运行。 HTML 元素包含 list 属性,我们的 list 包含能够离线使用应用程序所需的所有文件。我们正在尝试找到一种以自动方式缩小 javascript 文件的方法,同时还拥有一个可用的 list 文件(缩小后无需手动编辑 list 文件)。大多数情况下,在使用缩小的 javascript 文件时,最好在文件名中使用版本号或查询字符串变量之类的内容,以确保加载缩小的 javascript 文件的新版本,但这在与 list 结合使用时效果不佳文件不支持更改查询字符串变量或不同的文件名。

我们尝试过 AjaxMin 和 SquishIt,但未能成功。你们有什么想法或可行的解决方案来使这个组合发挥作用吗?

我们的 HTML:

<html manifest="app.manifest">

我们的 list :

CACHE MANIFEST

NETWORK:
data

CACHE:
scripts/application/application.js
scripts/application/database.js
scripts/application/knockout.extensions.js
scripts/application/main.js
scripts/application/models.js
scripts/application/prototype.extensions.js
etc...

谢谢!

最佳答案

如果您想推送更新,只需将 list 更改一个或多个字节即可。大多数人使用带有版本号的注释。

#version 0.1

当浏览器显示缓存的页面时,它会在后台下载 list 。如果更改,它将重新下载* list 中的所有文件。你的新 JS 文件也是如此。因此,这就是触发下载新文件所需要做的全部事情。 正确下载所有内容后,下次加载页面时将使用新文件。

(*) 重新下载时,浏览器将发送 Last-Modified 和/或 E-Tag header ,以便服务器可以在文件未修改时返回 304(以减少带宽使用)。此外,某些浏览器会尊重过期 header ,因此发送不太远的 future 的过期 header ,甚至更好的是过去的过期 header ,因为在使用 appCache 时基于过期 header 的缓存是无用的。

另请注意,如果没有发送过期信息,Firefox 将根据上次修改的 header 猜测过期值。如果文件有一段时间没有更改,并且您正在使用 appcache,则没有办法强制 firefox 重新下载该文件,除非更改它的文件名(几乎失去了理智,试图弄清楚为什么 FX 没有更新)一些文件)。

不确定您的缩小问题是什么。新的 JS 现在可以工作吗?或者您无法让浏览器使用新文件?

关于Javascript 缩小和 HTML5 list ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7556359/

相关文章:

javascript - SignalR 和 IE 问题 - 投票正在进行中

javascript - 传递的 URL 字符串不解释为字符串

python - 使用带空格的 Jinja2 字符串作为 HTML 属性

google-app-engine - 如何在 Google App Engine 上缩小和版本化 js/css?

javascript - 让 TypeScript 为闭包编译器导出正确的函数名称?

javascript - 如何使用 jQuery 生成动态 ID?

javascript - Ember CLI 将 ES6 文件导入 ember-cli-builds.js

javascript - 如果未选中复选框,如何提交 0,如果在 HTML 中选中复选框,如何提交 1

javascript insidehtml 不会设置值

.net - 是否有一个很好的 .Net CSS 聚合器可以组合样式表并缩小它们?