Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.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 如何访问浏览器';是否从nodejs应用程序中删除Windows对象?_Javascript_Node.js_Browser_Web - Fatal编程技术网

Javascript 如何访问浏览器';是否从nodejs应用程序中删除Windows对象?

Javascript 如何访问浏览器';是否从nodejs应用程序中删除Windows对象?,javascript,node.js,browser,web,Javascript,Node.js,Browser,Web,我正在尝试编写一个简单的应用程序来监视文件更改并自动在浏览器中重新加载更新的代码。我知道利弗雷罗德·诺迪蒙和其他人的存在,我只是想写我自己的。我已经创建了服务器,让它读取我想要读取的文件,称为监视程序,当被监视的文件发生更改时,它会终止并重新启动服务器。最后一部分:它应该刷新浏览器。这怎么可能呢?NodeJS没有表示全局命名空间的窗口变量。相反,它有一个名为global的变量 NodeJS中没有浏览器、窗口或URL位置 这是一个纯粹的服务器端工具。在node.js中,您有进程,它是一个node.

我正在尝试编写一个简单的应用程序来监视文件更改并自动在浏览器中重新加载更新的代码。我知道利弗雷罗德·诺迪蒙和其他人的存在,我只是想写我自己的。我已经创建了服务器,让它读取我想要读取的文件,称为监视程序,当被监视的文件发生更改时,它会终止并重新启动服务器。最后一部分:它应该刷新浏览器。这怎么可能呢?

NodeJS没有表示全局命名空间的
窗口
变量。相反,它有一个名为
global
的变量

NodeJS中没有浏览器、窗口或URL位置


这是一个纯粹的服务器端工具。

在node.js中,您有
进程
,它是一个node.js全局对象,类似于
窗口
,它是一个浏览器全局对象


有关更多信息,请键入
处理到node.js shell中。

正如其他人所解释的,浏览器编程环境以及因此而产生的
window.location.reload()
与node.js完全分离,因此不能直接从node.js调用它。服务器端代码在node.js中的服务器上运行。浏览器中的客户端代码仅在浏览器中运行。两者可以通过Ajax请求或通过webSocket连接发送的消息进行通信,但它们不能直接调用彼此的代码


对于基于服务器上更改的内容刷新浏览器,有两种基本方法

  • 浏览器中的Javascript可以定期询问服务器是否有任何新内容(通常通过传递时间戳的Ajax调用)。如果服务器说在该时间戳之后有新的内容,那么浏览器中的Javascript可以请求新的数据/文件。这种“轮询”方法不是特别有效,因为如果数据不经常更改,那么大多数对新内容的请求只会返回没有新内容。它也不利于电池寿命

  • 浏览器可以与服务器建立持久的webSocket连接。然后,当服务器发现服务器上的某些内容已更改时,它可以直接向每个连接的浏览器发送通知,通知其存在新内容。所有接收到该消息的连接客户端都可以进行普通的Ajax调用来检索新数据。或者,新信息可以通过webSocket直接发送到客户端。在这两种情况下,这种直接通知通常比“轮询”解决方案更有效


  • 使用webSocket选项,您将不希望服务器重新启动,因为这将删除所有webSocket连接。我不确定当某些内容发生更改时,您当前为什么要重新启动服务器,但您必须更改此设置才能使用webSocket解决方案。

    访问
    窗口
    对象服务器端的用例是什么?我希望它在浏览器中重新加载页面,然后您可能需要使用
    重定向()
    我认为重定向()只存在于表达中。。。有没有一种方法可以重定向本机节点js应用程序中的页面?
    redirect()
    response.writeHead(302,{'Location':url})的包装器以便您可以尝试使用它。那么,如果我想从我的节点应用程序在浏览器中重新加载页面,该怎么办?