gpt4 book ai didi

java - 不使用文件在网页上显示 XML 数据

转载 作者:行者123 更新时间:2023-12-01 15:39:22 25 4
gpt4 key购买 nike

目前,我有很多客户端连接将数据发送到服务器,然后服务器将这些数据聚合到 XML 文件中。然后,客户端可以查看网页,该网页通过 AJAX 每 1 秒更新一次内容 Pane ,其中包含文件的最新内容。

我的问题只是,是否有人对我如何跳过一起编写文件并以某种方式将 XML 数据直接发送到网页有任何建议?现在,我每 2 秒写入一次文件,但希望以更高的频率执行此操作,也许每 0.75 秒一次,以这种速度写入文件可能会成为一项昂贵的操作,并且会影响硬盘驱动器的总体运行状况。

Web部分使用php(在Apache 2.2上),所以我想也许让页面创建到服务器的套接字连接,服务器可以写入该套接字,并且页面可以在数据下推时更新,但我想知道是否有更好的方法来完成此类任务。

XML 文件通常不会那么大,不到 10KB,所以如果我的担心没有根据,我也想听听。

最佳答案

您可以使用 PHP 的 DomDocument 之类的东西在内存中构建文件,然后使用 DOMDocument::saveXML 回显它 - 请参阅 http://www.php.net/manual/en/domdocument.savexml.php

不要使用 AJaX 调用文件 /something/something/darkside/something.xml,而是调用 /something/something/darkside/something.xml.php(例如)- 该 PHP 文件将删除 XML。

为了确保它被解释为 XML,最好包含如下 header :

header('Content-type:text/xml;charset=utf-8');

但是...我认为您的问题在于保存该数据?据我了解,我在这里可能是错的,您有很多客户端创建单个保存的资源(以 XML 文件的形式),该资源由所有客户端执行的操作进行更新?

这意味着您必须在服务器上的某个位置保存一些内容。这意味着您实际上有两个选择,将数据保存在文件中(就像您正在做的那样)或数据库中(尽管从技术上讲,甚至数据库也会将数据写入文件系统的某处)。

就我个人而言,我会使用数据库 - 它们是为繁重工作而设计的,并且使用 DomDocument INSERT(或 UPDATE)XML 格式的数据: :saveXML ...你最终会得到(概念上)类似的东西:

$db->query("INSERT INTO table({fields}) VALUES({values including $xmlDomDoc->saveXML())}");

然后在需要时再读一遍......可能与您正在使用的原理几乎相同,但在数据库而不是基于文件的系统中进行。

关于java - 不使用文件在网页上显示 XML 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8325822/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com