zOompf已经完成了这个题目了一些非常深入的研究在这里.它胜过下面的任何发现.
一些背景信息的GZIP和DEFLATE(zlib)的HTTP 1.1定义:
"'Gzip'是gzip格式,'deflate'是zlib格式.它们应该调用第二个'zlib'来避免与原始deflate压缩数据格式混淆.虽然HTTP 1.1 RFC 2616正确指向RFC 1950中针对'deflate'传输编码的zlib规范,有报告称服务器和浏览器根据RFC 1951中的deflate规范错误地生成或期望原始deflate数据,最明显的是Microsoft产品.所以尽管'deflate'使用zlib格式的传输编码将是更有效的方法(实际上正是 zlib格式的设计),使用'gzip'传输编码可能更可靠,因为HTTP上的名称选择不幸1.1作者." (来源:http://www.gzip.org/zlib/zlib_faq.html)
所以,我的问题是:如果我使用NO zlib包装器发送RAW deflate数据(或gzip,就此而言)是否有任何现代浏览器(例如,IE6和更高版本,FF,Chrome,Safari等)无法理解原始的deflate压缩数据(假设HTTP请求标头"Accept-Encoding"包含"deflate")?
放气数据总是比GZIP小几个字节.
如果所有这些浏览器都能成功解码数据,那么发送RAW deflate而不是zlib会有什么缺点?
我注意到有些网站将版本号(特别是)放在CSS文件路径中.例如:
<link rel="stylesheet" type="text/css" href="style.css?v=12345678" />
Run Code Online (Sandbox Code Playgroud)
放置版本号的主要目的是什么?如果目的是记住上次更新CSS文件的时间,那么不应该在CSS文件中添加版本号作为注释吗?
浏览http://html5boilerplate.com/上的样板代码我对此用法感到困惑:
<link rel="stylesheet" href="css/style.css?v=1">
Run Code Online (Sandbox Code Playgroud) 当我从http://html5boilerplate.com/下载文件时,它在css中有?v = 2.
它是什么意思,它如何影响加载CSS?
<link rel="stylesheet" href="css/style.css?v=2">
Run Code Online (Sandbox Code Playgroud) 通过构建Web应用程序的教程,建议始终在所有.css和.js文件中附加查询字符串"?v = 1"以防止缓存.
这是"最佳做法"吗?
查询字符串是否应仅在生产开发期间使用?
部署新版本的 ASP.NET 网站后,是否有办法强制客户端浏览器刷新缓存项,尤其是图像、CSS 和 Javascript 文件?
\n\n问题是我不能\xe2\x80\x99 到处告诉每个使用该网站的人点击CTRL+ F5。我怎样才能强制浏览器这样做?
\n据我所知,当我们创建一个文件.js,例如:layout.js
,我们将像这样加载它:
<script src="../layout.js"></script>
Run Code Online (Sandbox Code Playgroud)
它运行正常.但最近,我被其他人管理了一个项目.文件名是layout.js,但它们加载如下:
<script src="../layout.js?v=1.1"></script>
Run Code Online (Sandbox Code Playgroud)
我已经过测试并删除了"?v = 1.1",两者都运行正常.
任何帮助都可以解释详细信息load <script src="../layout.js"></script>
和之间的区别是什么
<script src="../layout.js?v=1.1"></script>
?
我在AJAX
导航时遇到问题,问题是加载的javascript文件即使在新内容加载后仍保留在浏览器中,即使它们DOM
不再存在,它们也以VM
文件形式显示在浏览器控制台中并在其中执行代码。我不希望发生这种情况,因为当新内容通过时应该替换的javascript文件AJAX
。
我的DOM结构如下:
<body>
<header></header>
<main id="contentToBeReplaced">
<p>New content with its own js</p>
<script>
var script = "js/new.js";
$.getScript(script);
</script>
</main>
<footer></footer>
<script src="js/main.js"></script>
</body>
Run Code Online (Sandbox Code Playgroud)
每当页面加载有其自己的javascript文件时,就会出现一个新VM
文件并保留所有旧文件,这就是一个问题:
那么,问题出在哪里,我该如何解决呢?我需要防止重复文件,并在加载新的js文件时将其删除。
天知道是什么原因,我本地 word 客户端上的 Office 加载项缓存了我动态加载的 html 文件(通过 angular),并拒绝给我一种从缓存中删除它的方法。我唯一的解决方案是重命名文件并强制它寻找新文件。
我知道这是一个缓存问题而不是代码问题,因为当我在网络客户端中加载应用程序时,它总是获得新版本而不是旧版本。
请帮忙,每次更改文件时重命名文件既愚蠢又耗时
什么 0表示放置在标签中js文件的源路径末尾?例如,在以下脚本标记中,您将看到?0附加到最后.它意味着什么?
<script src="/xxx/xxx/xxx/header.js?_0_"></script>
Run Code Online (Sandbox Code Playgroud) 通过HTML 5样板模板观察了他们使用过的几个地方
<!-- CSS : implied media="all" -->
<link rel="stylesheet" href="css/style.css?v=1">
<!------ Some lines removed ------>
<script src="js/plugins.js?v=1"></script>
Run Code Online (Sandbox Code Playgroud)
但这有什么用呢?查询字符串如何工作?我没有更改文件名,也没有用查询字符串(?v = 1)编写任何脚本.
我错过了什么?我是否需要更改文件名,还是需要有一个存储库以确保其正常工作?
css ×5
javascript ×4
caching ×2
html ×2
ajax ×1
angularjs ×1
asp.net ×1
asp.net-mvc ×1
browser ×1
compression ×1
deflate ×1
duplicates ×1
gzip ×1
jquery ×1
ms-word ×1
office-js ×1
office365 ×1
optimization ×1
zlib ×1