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 从服务器高效获取数据的策略_Apache Flex_Blazeds - Fatal编程技术网

Apache flex 从服务器高效获取数据的策略

Apache flex 从服务器高效获取数据的策略,apache-flex,blazeds,Apache Flex,Blazeds,我有一个基于Flex的客户端应用程序,它通过BlazeDS与后端“对话”。在我的一个用例中,会有一个所谓的“照片墙”视图,它会显示一些最新的照片,这些照片是由用户提交的,并且是用户关注的位置(类似于Facebook) 问题是,照片墙上的数据必须通过“全部”过滤,这意味着没有过滤,“朋友”,这意味着用户正在关注的朋友,“位置”,这意味着用户正在关注的位置 以下三种方法让我头晕目眩 如果我只从服务器获取一次数据(默认情况下选择“全部”过滤器时),我将在本地存储数据,下次用户单击过滤器时,此本地集合将

我有一个基于Flex的客户端应用程序,它通过BlazeDS与后端“对话”。在我的一个用例中,会有一个所谓的“照片墙”视图,它会显示一些最新的照片,这些照片是由用户提交的,并且是用户关注的位置(类似于Facebook)

问题是,照片墙上的数据必须通过“全部”过滤,这意味着没有过滤,“朋友”,这意味着用户正在关注的朋友,“位置”,这意味着用户正在关注的位置

以下三种方法让我头晕目眩

如果我只从服务器获取一次数据(默认情况下选择“全部”过滤器时),我将在本地存储数据,下次用户单击过滤器时,此本地集合将在本地进行过滤。问题是,我无法预测最近有多少张照片来自朋友,有多少来自不同的地点,因此我可能会得到一个只显示一张照片的页面,其中至少应该有5张照片。我显然不想处理部分抓取之类的事情

另一种方法是最初向服务器发出两个单独的请求,一个请求从朋友那里获取最近的照片集,另一个请求获取位置。因此,我将确保我有最少的照片过滤页面。当数据到达时,客户端将合并这两个集合,按日期排序,瞧,这是“全部”集合(当然,合并时必须删除重复的照片)

第三,在服务器级别进行相同的操作,方法是进行两个单独的查询,然后合并它们


这是一种常见的情况,我知道,但我还是得设法应付。一般来说,请为数据获取提供与服务器无关的好策略。

在我看来,最好的方法是从数据驱动设计的角度考虑您的应用程序。你肯定应该有3个查询,以获得所有照片,朋友的照片和位置照片与相应的页面。从客户机-服务器交互的角度来看,两次或三次传递具有图像描述的同一域对象并不昂贵。请记住AMF是紧凑的二进制格式。您可以依靠浏览器缓存获取图像,甚至可以根据需要在客户端缓存位图数据

从服务器的角度来看,您将有3个服务方法,其中有3个对DB的查询。而且,不需要使用另外两个查询组合服务器上的所有图像。从数据库中获取所有记录要比使用附加条件的两个查询然后在Java代码中组合它们便宜得多

最后,它将使您的应用程序更加简单和可测试(在客户端和服务器端)

最后,服务器端的3个独立查询和3个服务方法通过客户端获取列表