Javascript 直接从该node.js应用静态提供的html访问node.js应用程序功能
好吧,我可能要求太多了,或者表现出我的天真,但请容忍我 目前我有一个html(带js)托管在A,node.js应用托管在B。html/js通过Javascript 直接从该node.js应用静态提供的html访问node.js应用程序功能,javascript,html,node.js,express,Javascript,Html,Node.js,Express,好吧,我可能要求太多了,或者表现出我的天真,但请容忍我 目前我有一个html(带js)托管在A,node.js应用托管在B。html/js通过XMLHttpRequest从node应用获取数据,B的node应用尽职尽责地生成请求的数据并发送给A 我试图总体上减少http请求的数量,总体上优化性能,并想知道是否有可能通过node app(通过express.static())在一个时间点上托管html/js,以便当html/js从节点服务器请求数据时,实际上是从同一服务器请求数据,事实上,它们都在
XMLHttpRequest
从node应用获取数据,B的node应用尽职尽责地生成请求的数据并发送给A
我试图总体上减少http请求的数量,总体上优化性能,并想知道是否有可能通过node app(通过express.static()
)在一个时间点上托管html/js,以便当html/js从节点服务器请求数据时,实际上是从同一服务器请求数据,事实上,它们都在同一个应用程序中(因为节点应用程序正在生成数据,而节点应用程序也将html/js暴露给静态路由)
那么,html中的js是否有更直接地访问节点应用程序功能的方法,即不向同一节点应用程序发送http请求,而是直接访问节点应用程序中的数据生成功能,或者至少不使用http请求
我在我的节点应用程序中设置了一些东西,这样可以通过
express.static()
,成功地托管html/js——因此它在某种程度上工作正常——但我只需要知道是否有可能避免http请求绕过一个大循环,返回到同一个节点应用程序 简单的答案是,如果A和B相距很远,是的,将它们托管在同一台服务器上会有所帮助
从同一个应用程序为它们提供服务不会有帮助,因为您仍然需要通过HTTP进行对话
是否可以删除从A到B的HTTP调用的问题取决于应用程序设计。你有一个静态的web应用程序和一个API,你基本上在考虑将其删除,并使其成为一个应用程序
两者都有优点和缺点,但如果我开始列出它们,我将走个人观点的道路
我的投票,不用麻烦了:)当您通过express.static()提供html和js文件时,它们不是在服务器上运行,而是在服务器和浏览器之间运行。所以js脚本是从浏览器运行的。浏览器脚本要与服务器通信,必须使用http/https请求或套接字。您可以将浏览器脚本从服务器A与服务器B进行通信(但不包括签出CORS)