0

我有一种情况,我使用 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 试图同时访问同一个文件。于是就出现了这个问题。

任何帮助表示赞赏。

提前致谢

4

4 回答 4

1

我认为该文件已缓存。最简单的事情是通过不同的 url 请求文件。尝试类似的东西"sample.txt?rnd="+Math.rand()

于 2013-03-31T17:42:02.177 回答
0

可能存在同步问题,您的数据将被损坏。

于 2013-03-31T17:44:07.330 回答
0

我有一个问题,是否必须使用 Ajax 来完成?我想你正试图弄清楚

阿贾克斯推拉

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

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

于 2013-04-01T00:00:16.480 回答
0

感谢所有试图帮助我的人。我终于想出了一个解决方案。我不是使用 jquery post 直接从文件中读取,而是使用另一个 jsp 文件来读取文件内容并在屏幕上使用 out.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. 

经过多次更改,终于想出了一个很好的工作解决方案。

谢谢大家。

于 2013-04-02T09:01:05.157 回答