Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node.js在一个请求中提供多个文件_Javascript_Node.js_Http_Get - Fatal编程技术网

Javascript Node.js在一个请求中提供多个文件

Javascript Node.js在一个请求中提供多个文件,javascript,node.js,http,get,Javascript,Node.js,Http,Get,是否可以在一个请求中提供多个文件 以下是我的代码的简化版本,用于在向node.js服务器发出的请求中为我们的网站主页提供服务,该服务器不包含任何参数。有缓存代码可以缓存文件数据,以提高服务器的效率,处理错误等: var http = require("http"); http.createServer(function(req, res){ res.setHeader("Access-Control-Allow-Origin", "*"); if (req.url == "/

是否可以在一个请求中提供多个文件

以下是我的代码的简化版本,用于在向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文件中一个请求中提供的所有文件,如果不是,是否有更有效的方法来提供我们当前使用的页面?

您是下载文件还是在浏览器中呈现文件。如果要在浏览器中渲染它们,则更有意义的是,浏览器可以对资源发出多个并发请求以优化带宽,而不是发出单个阻塞请求。对CDN的3个单独请求将并行进行,这将更快。

您是下载文件还是在浏览器中呈现文件。如果要在浏览器中渲染它们,则更有意义的是,浏览器可以对资源发出多个并发请求以优化带宽,而不是发出单个阻塞请求。对CDN的3个单独请求将并行进行,这将更快。

如果是单个页面,您可以将它们放在脚本和样式标记中,图像可以放在数据URL中,您会很高兴。如果有多个页面使用这些文件,最好让浏览器获取并缓存它们

我认为有一些协议http2?服务器可以发送浏览器下一步将请求的其他文件。但我不知道这项技术叫什么


祝你好运,有趣的问题

如果是单个页面,您可以将它们放在脚本和样式标记中,图像可以放在数据URL中,您会很高兴的。如果有多个页面使用这些文件,最好让浏览器获取并缓存它们

我认为有一些协议http2?服务器可以发送浏览器下一步将请求的其他文件。但我不知道这项技术叫什么


祝你好运,有趣的问题

我已经大量更新了问题,包括示例代码,以更好地说明我的意思我已经大量更新了问题,包括示例代码,以更好地说明我的意思