Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.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
Apache flex Flex搜索接口:加载XML或查询数据库_Apache Flex_Flash_Actionscript_Cairngorm - Fatal编程技术网

Apache flex Flex搜索接口:加载XML或查询数据库

Apache flex Flex搜索接口:加载XML或查询数据库,apache-flex,flash,actionscript,cairngorm,Apache Flex,Flash,Actionscript,Cairngorm,对于用于搜索和显示结果(无写操作)的Flex应用程序,我目前将数据存储在关系数据库中, 但我不是通过应用程序查询数据库,而是每晚将数据(包括其关系)写入XML文件 然后,通过Flex,我加载XML文件,将其解析为自定义对象,并根据需要“查询”这些对象 它工作得非常好——基本上是根据搜索条件过滤这些对象的ArrayCollection 例如,与查询数据库相比,在这种情况下,全文搜索速度非常快 但有哪些潜在的缺点?这种方法的有效性如何?任何想法都将不胜感激 提前谢谢。简短的回答是:。。。对不起,没有

对于用于搜索和显示结果(无写操作)的Flex应用程序,我目前将数据存储在关系数据库中, 但我不是通过应用程序查询数据库,而是每晚将数据(包括其关系)写入XML文件

然后,通过Flex,我加载XML文件,将其解析为自定义对象,并根据需要“查询”这些对象

它工作得非常好——基本上是根据搜索条件过滤这些对象的ArrayCollection

例如,与查询数据库相比,在这种情况下,全文搜索速度非常快

但有哪些潜在的缺点?这种方法的有效性如何?任何想法都将不胜感激


提前谢谢。

简短的回答是:。。。对不起,没有简短的回答

长期的答案是:架构决策总是涉及某种权衡。应用程序的正确决策主要取决于内容和系统的总体设计

我唯一可以肯定的是:你现在所做的阻止了关注点的彻底分离

例如:如果您在服务器上进行搜索,您可能会在客户不知道的情况下更改数据库中的字段名等,因为您可以调整实际数据输出以匹配“旧”模型,即使查询完全不同。客户机负责显示数据,服务器负责保存和检索数据。如果您在一个更大的团队中开发,或者如果您的应用程序是长期运行的,具有复杂的事务和/或经常更改行为(例如在企业场景中),那么这可能就是您想要的。这些场景通常会考虑到服务器的更大压力,因此需要更强大的硬件,因为硬件成本不是大型公司最迫切需要考虑的问题

根据完整数据集的大小,它还将显著降低网络负载,因为您不需要将所有数据都传输到客户端,只需要传输相关结果。因此,如果您的服务器的网络连接有限,或者您的用户的连接速度较慢,这可能是一个好主意

另一方面:如果你在你的客户端应用程序中搜索和查询,按照你描述的方式,你会减轻数据库和web服务器的负担,这并不总是一件坏事,尤其是当你的服务器容量有限,性能至关重要时

但除了增加总体网络流量外,这也意味着你更依赖客户端计算机:a)它必须足够快来处理搜索,b)每次数据模型发生轻微变化时,你都必须(重新)向用户部署更新的应用程序。这很可能是错误的主要来源,因此您必须实施某种版本检查,以防止过时的客户端连接到服务器和/或禁用浏览器缓存

因此,最后,您必须权衡利弊,然后决定哪种解决方案最适合您的需要。你可能想考虑使用一个专用的搜索引擎,比如第三个选项。