【问题标题】:Whats different between including and addressing a javascript file包含和寻址 javascript 文件有什么不同
【发布时间】:2011-01-19 07:18:04
【问题描述】:
两者有什么不同
<!--#include virtual="JS.htm" --> //note that in this method all JS files imported like below in JS.htm
和
<script src="myjavascript.js" type="text/javascript"></script>
【问题讨论】:
标签:
asp.net
javascript
html
include
【解决方案1】:
在第一种情况下,javascript 文件包含在服务器端,因此它被包含在内。在第二个示例中,浏览器下载 html 文件,然后向服务器发送另一个请求以获取 javascript 文件。
【解决方案2】:
<!--#include virtual="JS.htm" --> 是 server side include,如果没有某些配置,将无法工作,并且已被服务器包含在内,而 javascript 的方式已加载到页面。
服务器端包含 (SSI) 是一种简单的解释型服务器端脚本语言,几乎专门用于网络。
SSI 最常见的用途是
包括一个或多个的内容
文件到 Web 服务器上的网页中。
例如,一个网页包含一个
每日报价可以包括报价
将以下代码放入
网页文件:
只需更改 quote.txt 文件,
包括文件在内的所有页面都将
显示最新的每日报价。这
包含不限于文件。在
这个例子,在服务器上
能跑运,输出吧,一个
随机选择报价,也可以
包括在内。
服务器端包含对
包括一段共同的代码
整个站点,例如页面
页眉、页脚和导航
菜单。有条件的导航菜单可以
有条件地使用
控制指令。
来源:WikePedia
【解决方案3】:
首先,#include 仅在经典 ASP 中使用,在 ASP.NET 中没有任何意义,因此您应该重新标记您的问题。因此,当您 include 某些内容时,它实际上会获取该文件的内容并将其放在应该包含它的位置,因此您最终会得到一个下载到客户端的文件。
当您包含一个 javascript 文件时,该文件的内容不会放在主脚本中,但浏览器会发送一个单独的请求来获取它。这是包含 javascript 的首选方式。
【解决方案4】:
包含(SSI -- 服务器端包含)将任何内容放在js.htm inline 中,而脚本标记引用 外部文件 而不将其内联。
虽然包含预先节省了加载时间,但它不允许浏览器缓存 javascript,这意味着从长远来看它实际上可能会变慢。
一般来说,我建议使用引用外部文件的脚本标签。