gpt4 book ai didi

node.js - HTTP2 Push-将脚本标签放置在res.end中

转载 作者:太空宇宙 更新时间:2023-11-04 00:48:41 25 4
gpt4 key购买 nike

阅读后HTTP2 Article using Speedy NPM module ,我有一个问题。

HTTP2推送的好处是浏览器在请求资源之前就已经缓存了资源。

在此示例中:

spdy.createServer(options, function(req, res) {
// push JavaScript asset (/main.js) to the client
res.push('/main.js', {'content-type': 'application/javascript'}, function(err, stream) {
stream.end('alert("hello from push stream!")');
});

// write main response body and terminate stream
res.end('Hello World! <script src="/main.js"></script>');
}).listen(443);

<script src="/main.js"></script> 是什么意思?实际上导致浏览器执行res.end('Hello World! <script src="/main.js"></script>')

如果index.html有<script src="/main.js"></script>在它里面,为什么要把它放在 res.end('Hello World! <script src="/main.js"></script>') 中?

最佳答案

res.end('Hello World! <script src="/main.js"></script>');正在发送一个非常小的网页。 (它缺少 <html><head><body> etc... ,因为它是一个简单的示例。)它看起来像这样:

Hello World!
<script src="/main.js"></script>

网页显示“Hello World!”但你不会看到 <script>标签呈现。浏览器解析“网页”,处理链接到main.js并发现它已经收到该文件(来自 .push )。最后该脚本被执行并打开 alert() .

main.js甚至在“网页”内容交付之前就被抢先发送,这就是 res.push('/main.js',...) .

关于node.js - HTTP2 Push-将脚本标签放置在res.end中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33511203/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com