文章版权由做者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/前端
在空间查询中,咱们对查询结果要求以分页形式进行展现。Geoserver的WFS服务提供了maxFeatures 、startIndex以及sortBy这样的参数,经过设置这些参数的值便可实现分页。可是arcgisserver中目前没有这类能够实现分页查询的参数,那么该如何解决这个问题?这里我给出三个不断优化的解决思路。缓存
该方案顾名思义,获取到全部查询结果后在前端进行数据组织和分页。服务器
优势:实现简单。微信
缺点:优化
a.当查询返回结果过大时,数据查询和传输时间都会很长 spa
b.没有真正体现分页的优点,前端获取了全部数据,却数据展现率很低 3d
c.arcgis一次查询返回结果的限制(需在AGS中手动设置最大返回数)server
d.对arcgis服务器也有不小的压力blog
后台进行arcgis查询,将查询返回的结果所有缓存:包括数据总数以及数据详细信息。前端根据返回的总数来进行分页设置。进行分页跳转时,向后台发送请求后台根据缓存数据进行对应的分页数据获取和返回。索引
优势:
a.实现相对简单
b.查询返回给前端的数据量大大减小,减小数据传输耗时,加速查询效率。
缺点:
a.后台依然要获取到全部查询信息,ags的查询耗时
b.查询数据量太大,对ags服务器的压力也不小
c.缓存数据须要定时清理,不然形成太多没必要要的缓存数据
d.依然须要处理设置AGS单次查询的最大返回数据量
a.先进行仅返回objectID字段的查询,获取到全部结果的总数和主键值,前端进行分页。
b.点击分页操做时,经过每一个页面的objectID进行指定查询,展现结果。
优势:
a.仅查询ObjectID的方式不受ags默认返回数据量限制,并且返回结果数据量少,能够减小传输耗时。
b.ags对于仅查询ObjectID时,能够经过空间索引表快速返回查询结果(无需经过ObjectID再去关联查询属性数据表),其效率要高于还需返回其余属性信息的查询。能够大大提升查询效率。
-----欢迎转载,但保留版权,请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/
若是您以为本文确实帮助了您,能够微信扫一扫,进行小额的打赏和鼓励,谢谢 ^_^