当有一个没有缓存的javascript src文件时,浏览器会做什么?

时间:2011-08-08 18:02:32

标签: javascript http node.js

是否为指定文件发送HTTP GET请求?我正在尝试编写自己的NodeJS网络服务器,并想知道如何处理向浏览器发送所需的javascript文件。

假设我正在为我正在构建的网络应用程序使用多个javascript库,并且对于每个我在HTML文件的头部都有一个脚本标记(例如<script type="text/javascript" src="jquery.js"></script>)。在我的服务器中,我能够编写一些代码来根据所请求的src调用不同的函数,并返回一个文件,该文件不一定与HTML所期望的位置相同吗?

我一般都是NodeJS和网络服务器的新手,所以我很抱歉,如果这对其他人来说真的很明显......

3 个答案:

答案 0 :(得分:3)

  

是否为指定文件发送HTTP GET请求?

  

我正在尝试编写自己的NodeJS网络服务器,并想知道如何处理向浏览器发送所需的javascript文件。

然后不要担心浏览器如何决定要发出的HTTP请求。只需实现HTTP规范。

  

在我的服务器中,我是否可以编写一些代码来根据请求的src调用不同的函数,并返回一个文件,该文件不一定与HTML所期望的位置相同?

这听起来好像你打算根据referer标题为同一个URI提供不同的内容......我希望这会打到缓存并变成基于竞争条件的恶梦。不要这样做。编写HTML,以便在需要不同的脚本时,从不同的URI中请求它们。

另一方面,如果您想要在不从文件系统上的文件中读取数据的情况下返回数据,那么这很好。客户端不关心服务器如何确定将哪些数据放入HTTP响应中。只要确保它是理智和一致的。

答案 1 :(得分:0)

  

是否为指定文件发送HTTP GET请求?

您不必担心从浏览器请求资源的时间和方式,只需将您想要提供的资源地址映射到您要为每个资源返回的内容。

  

我可以编写一些代码来根据所请求的src调用不同的函数,并返回一个不一定与HTML所期望的位置相同的文件吗?

当然。资源的地址与获取资源数据的物理文件之间没有直接关系,总有一些代码可以在资源地址和获取数据的位置之间进行映射。当文件排列在与资源地址基本相同的层次结构中时,管理资源会更容易。

答案 2 :(得分:0)

Does it send an HTTP GET request for the specified file?

正如Quentin所说,是的,浏览器将请求源HTML中指定的每个脚本文件,并为该特定URI提供GET请求。

当您的Web服务器收到该GET请求时,您可以执行任何要为URI请求返回数据的操作。您不必实际从该路径返回文件。实际上,您可以解析路径并使用路径的不同部分作为请求中的数据参数(这就是许多Web应用程序最近所执行的操作)。

因此,如果请求进入http://www.mysite.com/user/john/accountnumber,您可以在数据库中查找并获取名为"john"的用户的帐号并返回该数据。结果不一定来自实际文件或实际具有该路径的任何内容。