2015-09-07 107 views
0

我知道你们大多数人会想“你为什么要这么做”?基本上我有一个缓存整个页面输出的CMS系统,所以我不能在<head><body>中包含这个特定的项目,因为我不希望它被缓存。好的,添加<script>标记*之前* <head>标记?

我已经在Chrome,Firefox,safari和Opera中成功地尝试了它。实际上,这些浏览器似乎都会自动将其移至页面呈现中的<head>。我只是想知道为什么我应该避免这种情况。

+0

尝试在IE 6中使用(如果以后计算机仍然可用,您将会很幸运) – idmean

+0

不,它不正确。但是,实际上,这是可以的。 – 2015-09-07 13:54:31

+0

有趣的是,为什么人们看到需要投下这个问题。这是一个完全合法的问题。 – suncat100

回答

0

没有特别的理由不这样做,如果你真的需要。面对各种奇怪的标记,浏览器非常有弹性。例如,浏览器根本就无法在任何地方处理<style>标签,即使理论上他们应该去<head>

话虽如此,你不能确定某个地方某个地方不会以某种不愉快的方式破坏。

但是没有其他选择,比如在缓存的HTML中包含单独的<script src=标记,它将由服务器单独处理并提供看起来不想缓存的动态JS?

+0

谢谢,这是我从一个阅读完整问题的人寻找的有点答案。它实际上只包含一些可选的服务器诊断,我不想在'''''内部添加,因为诊断输出会被缓存。注入只会在URL中追加'''diagnostics'''时发生,任何验证和政治正确性都不是考虑因素。 我也许可以按照你的建议去做,但那会包括加载另一个资源,即使它是空的。 – suncat100

1

将东西放在headbody以外的地方根本就是不正确的HTML。

html标签内容模型是:

的磁头元件,接着由主体元件

http://www.w3.org/TR/html5/semantics.html#the-html-element见。

+0

对。但问题其实不是,我的网页是否会通过验证,但实际上,这样做会不会导致一些可怕的问题? – 2015-09-07 13:55:58

+0

@torazaburo OP想要“为什么我应该避免这种情况的其他原因。”据我所知。 – idmean

+0

当然,我认为不符合是避免它的理论原因。我认为OP已经知道它不符合要求,这就是他发布他的问题的原因。我有点解释他的问题是有**实际**的理由来避免它,就像某些情况下它不起作用。 – 2015-09-07 14:08:00