Node.js在一个请求中提供多个文件
Node.js serve multiple files in one request
是否可以在一个请求中提供多个文件?
以下是我的代码的简化版本,用于在向我们的node.js服务器请求时为我们的网站主页提供服务,该服务器不包含任何参数(有缓存代码可以缓存文件数据,使服务器更高效,处理错误等):
var http = require("http");
http.createServer(function(req, res){
res.setHeader("Access-Control-Allow-Origin", "*");
if (req.url == "/"){
res.writeHead(200, {"Content-Type": "text/html"});
fs.readFile("./pages/index/index.html", function(err, data){
res.end(data);
});
} else if (req.url == "/index.css"){
res.writeHead(200, {"Content-Type": "text/css"});
fs.readFile("./pages/index/index.css", function(err, data){
res.end(data);
});
} else if (req.url == "/index.js"){
res.writeHead(200, {"Content-Type": "application/javascript"});
fs.readFile("./pages/index/index.js", function(err, data){
res.end(data);
});
} else if (req.url == "/indexBackground.jpg"){
res.writeHead(200, {"Content-Type": "image/jpeg"});
fs.readFile("./pages/index/images/background.jpg", function(err, data){
res.end(data);
});
}
}).listen(port);
html文件本身使用CDN导入外部库,对样式表、脚本和图像的引用如下所示:
<link rel="stylesheet" href="https://our-website-url/index.css">
<script type="text/javascript" src="https://our-website-url/index.js"></script>
<img src="https://our-website-url/indexBackground.jpg">
页面已正确送达,但必须提出3个单独的请求才能送达页面。我想这会使网站加载速度变慢,并给服务器增加不必要的负载。
是否可以在一个请求中提供所有3个文件,尽管它们具有不同的内容类型?如果是这样,我们将如何在html文件中引用在一个请求中提供的所有这些文件?如果不是,是否有比我们目前使用的更有效的方法来提供页面?
如果是一个单独的页面,你可以把它们放在脚本和样式标签中,图像可以放在数据url中,你会很高兴。如果是多个页面在使用这些文件,最好让浏览器获取并缓存它们。
我认为有一些协议(http2?),服务器可以发送浏览器接下来无论如何都会请求的额外文件。但我不知道这项技术叫什么。
祝你好运,有趣的问题!
您是在下载文件还是在浏览器中渲染文件。如果您在浏览器中呈现它们,那么浏览器可以对资源进行多个并发请求以优化带宽,而不是进行单个阻塞请求,这更有意义。对CDN的3个单独请求将是并行的,并且这将更快。
相关文章:
- 正在传递JSONP标头's数据参数到另一个文件中的AJAX请求
- 请求准备一个文件并返回路径,允许用户在准备好时下载
- 显示IIS上javascript文件(SOAP请求)的XML响应
- Ajax调用返回当前html页面,而不是请求的文件
- 将任何CDN配置为只传递一个文件,无论请求的url是什么
- 是否可以缓存可下载的文件,并在XHR和非XHR请求之间共享该缓存
- YUI向json文件发出ajax请求
- 在PHP中检测AJAX请求来自哪个文件
- 需要帮助处理XML HTTP文件上载请求
- 使用CloudFront和AmazonS3,或者其他CDN,我可以将所有类似的请求发送到一个静态文件中
- 在同一主机上对PHP文件使用XMLHTTP请求的Javascript违反了同源策略
- 在ajax请求后重新呈现EJS文件
- Laravel&Dropzone.js文件请求
- 获取请求JS文件的网站的域
- 如何在Liferay serveResource(-,-)方法中从AJAX请求下载文件
- JSON请求返回.txt文件
- 正在删除配置文件请求
- 包含和条件与传统的多文件请求
- XMLHttpRequest发送文件请求对于大文件给出404错误
- 从一个页面上的多个文件请求数据