前端使用什么方法可监听文件的内容的变化,用Node.js吗?

项目需求是,后端定时的将数据写入一个文件中,然后前端需要去根据文件中的内容去改变html元素的样式,但必须是实时的获取文件内容,求大神解答

3个回答

后端定时的将数据写入一个文件中,写入后通知前端更新就行了啊。
这里你用的“后端”指什么?

gu18724001186
奋斗不懈二哈猿 后端用的servlet,监听并获取android设备中的状态信息
2 年多之前 回复

这个没必要监控文件是否变化,后台是定时修改文件内容,那么你前端用个计时器,去轮询实时数据就可以了

gu18724001186
奋斗不懈二哈猿 直接用setInterval方法去让ajax定时发送请求吗,会不会占用系统资源过高了
2 年多之前 回复

方法一:长连接
推荐的方案就是WebSocket(什么嵌套iframe的方法我不太推荐),就像你自己说的Node.js,实现起来很简单,前后端沟通好就行,主要工作在后端。实现难度就在于你们的开发人员对WebSocket技术的掌握程度,以及你们开发团队间沟通的难易程度。
方法二:前端轮询请求
按照你的需求描述,文件要求实施更新,就看这个更新频率有多高,根据频率来设置前端定时器,定时器里面去向后台请求文件的数据,每次取回来都跟上一次取回的文件进行比对,判断是否变化。方法二对后端要求就很简单,只要自顾自更新文件就行,前端会自动来查询文件。对于前端来说一是增加了很多逻辑,另一个就是使得程序多了很多冗余请求,增加流量,增加耗电,降低性能。

yuhk231
大菜鸟231 回复gu18724001186: 1.node.js的socket.io,最简便的实现方式。你可以搜索“node.js socket.io聊天室”之类的关键词;2.java长连接,通过设置http请求头“keep-alive”,每次前端请求完成后java后端不关闭连接,来达到“实时通信,推送消息”的效果;3.如果对通信这一块概念比较模糊的,还是推荐使用前端轮询请求来做这个效果。现实中很多项目都是通过定时器去查看后台变化的,比如股票实时价格,查询频率最高的接口5秒请求一次。当然现实中的方案跟很多历史原因有关。
2 年多之前 回复
yuhk231
大菜鸟231 回复gu18724001186: 我说几个方向吧,你朝着几个方向去找资料就行,应该能找到实现方案。
2 年多之前 回复
qq_31349087
mml_慢慢来 回复gu18724001186: 用webscoket啊,这是协议,后端有前端也有
2 年多之前 回复
gu18724001186
奋斗不懈二哈猿 首先我用的服务器是i-jetty,是android中的内置服务器,不支持jsp,所以只能用servlet和html进行开发,如果我用node.js的话,如果后端获取到android设备里面的状态信息后,将信息保存在文件中,我用node.js监听到了文件的变化,那我怎么去通知前端来读取这个文件的内容呢,菜鸟一个,求大神给点方案
2 年多之前 回复
gu18724001186
奋斗不懈二哈猿 前后端都是我自己负责的,大神,如果我用WebSocket去主动向前端推送消息的话,那么我前端靠什么去接收这个消息呢,ajax吗?
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!