访问同一个文件

Accessing the same file

本文关键字:文件 同一个 访问      更新时间:2023-09-26

我有一个情况,在我写一个文本文件编程使用java,同时我从同一文件中读取使用jQuery。

我面临的问题是,每当通过java将内容写入文本文件时,jQuery无法找到更新的内容。

我已经谷歌了很多,但我发现的唯一结果是java和java处理,而不是java和javascript(即客户端和服务器端)

我不确定这是否可能。

关于这个问题的更多信息:

我写进文件的爬行结果使用java和我试图使用javascript (jQuery.post()方法)显示相同的。

JAVA

一个多线程抓取程序,它可以抓取一个网站并完成一些功能。我试图写一些内容到一个文本文件使用相同的java程序,当爬行发生。我写的内容主要是关于调用哪个线程以及正在抓取的当前链接的详细信息。

我在文本文件中写这个的原因是我需要在UI中显示输出,这样查看UI的人就会明白发生了什么。

一切如其所料

JAVASCRIPT (jQUERY)

使用

jQuery.get or post ("sample.txt", function (result) {
                  $("#someID").html(result);
                  });

它通常从文本文件中读取,但当java和javascript都试图访问该文件时,java占主导地位,留下javascript,因此jQuery无法获取更新的内容,当它发生时。

我想这个解释足以让人们明白我的问题到底是什么了!

总的来说,java和javascript试图同时访问同一个文件。所以就出现了这个问题。

任何帮助都是感激的。

Thanks in advance

我认为文件被缓存了。最简单的方法是通过不同的url请求文件。试试"sample.txt?rnd="+Math.rand()

可能会出现同步问题,您的数据将被损坏。

我有一个问题,它必须用Ajax完成吗?我想你是想弄清楚

Ajax push and pull

这不是很容易做到的,我真的不建议这样做。然而,有一种更好的技术叫做websocket。因此,您可以做的是,客户端可以向服务器提交请求,将数据写入文件,然后服务器可以将更新的内容发送回客户端。而且,这比通过大量的HTTP请求来实现相同的目标要好得多。

此外,如果您想要跨浏览器兼容性,请查看http://socket.io/

感谢所有试图帮助我的人。我终于想到了一个解决办法。我没有使用jquery post直接从文件中读取,而是使用另一个jsp文件读取文件内容并打印出来。println显示在屏幕上,之后我使用jQuery post来获取由该jsp文件编写的内容。因此可以避免同步问题。

我的解释如下:

前面我有

java program -> Text File <- javascript (jQuery post) // Resulted in synchronization problem where in javascript was not able to access the updated content.
现在

java program -> Text file <- JSP file <- javascript (jQuery post) // Avoided the synchronization problem as that file is accessed by the same server side language. After that jQuery reads the content printed by JSP page. 

经过多次修改,终于想出了一个行之有效的解决方案。

谢谢。