JS调用Flex的属性难题大器晚成例

性格评估&分析:

  1. 众多时候,大家付出一个系统,达成了A和B的竞相调用和操作,只是达到而已。更多情形下实际运用场景必然有多少压力和属性供给,而假设上了质量,“可用”就远远不足了,还要牵记“可行”;
  2. 从相当多的诀要中找到具体的,才是终极目标。那实际要求对各样措施的知道和比对有心心念念的钻研。但岁月少于,经验有限,人力有限,所以只可以做代价有限的尝尝,并不停优化,那恐怕也是迭代费用或火速开荒相比较提倡的吧。
  3. 属性优化自个儿在事先的字数已经粗略的提起,只要有品质瓶颈,只要未达成物理(理论)可总括的质量边界,就会找到相符的措施来优化。
  4. 别的,手艺选型也很关键,对于当下我们接触的多少个GIS引擎,匡助JSAPI的都未出现类似难题,而非JS的API接口就要求做额外的商讨,尝试和优化。那对工夫选型也是一个值得沉思的例证。

转发表明:请指明原文者,连接,及出处。

方法B(新方法):

多少API提供JS接口(版本),那是最利于的,有个别提供诸如FLEX编制程序接口的API,令你在JS中调用,也是可以,但境遇如下境况,分享之。

 

  1. 在JS中,通过工作层获得2万个设备的新闻数据,诸如数组DEV[20000];
  2. 在JS中,将音讯数据打包为长字符串String(带约定结构/类似JSON);
  3. 在JS中,将String从JS传入Flex: JS –> Flex;
  4. 在Flex中,得到传播String,并剖判还原为hashmap,并循环展现在GIS地图上;
  5. 在Flex中,通过hashmap结构提供用key查value的劳务:val =
    devicehashmap.get(key);

凤翥龙翔随笔目录:新闻体系实行手记 (http://www.cnblogs.com/taichu/p/5305603.html葡萄娱乐场,)

 

正文

 

  1. 在JS中,通过工作层得到2万个器械的消息数据,诸如数组DEV[20000];
  2. 在JS中,将音讯数据打包为hashmap(key -> value);
  3. 在JS中,将hashmap数据结构从JS传入Flex: JS –> Flex;
  4. 在Flex中,获得传播的hashmap结构,并循环显示在GIS地图上;
  5. 在Flex中,通过hashmap结构提供用key查value的劳务:val =
    devicehashmap.get(key);

摘要:此文描述了小编接触过的一些音讯种类或平台之间的联网构型和景色,挂意气风发漏万的计算分享之。

(备注:其实在尝试二种别的GIS引擎的时候,大家选取JS/API接口,就从未有过遇上如上的问题,那实际对技巧选型是相当重要的。)

总结:

  1. 在步骤2,3,4中消耗了20秒左右,数据量是2万个device;首假诺手续3异常的慢;
  2. 初步评估价值,JS中结成hashmap结构亟待开销自然时间,但十分的少;缺憾这种高等结构对JS/Flex两边是个担负,传入的时候需求做须要的自己商量和改变,所以相当慢;
  3. 除此以外,思量到JS/Flex互相调用结构比较复杂,即使传递高等结构,两边系统轻巧在深入分析上不平等而会挑起额外的开荒;

 

我们的顾客端是基于GIS地图的使用,用JS代码调用FLEX的API接口,必要经过FLEX的语句在GIS地图上表现(放置)2万个指标(Object)。

(备注:其实还尝试过方法A的变种,正是在JS这里运维循环2万次,每一次将一条设备音信传送给Flex并在GIS地图上展现Object,就算每一回数据量不大,不过来回调用JS/Flex2万次,作用更低下,所以也抛弃了,这里就不再斟酌了)

 

品质评估&解析:

 

  1. 在步骤3中消耗了1秒左右(其实是500ms左右),数据量是2万个device;
  2. 先导推断,优质的数据结构String,在大多数种类中都能很好的互操作,并获得最轻松易行的支撑和分析(比方大都以bytes字节数组,末了二个是标识,大概有一个不大的幽雅的头结构等等),所以传递String相当的大的下落了时间支付。而对JS侧,拼接String比组装hashmap越来越快些;在Flex侧,本人深入分析String组装自身的haspmap(不是明白JS的hashmap结构)也不慢。
  3. 全体上手续1到5消耗在1秒左右,达到供给;

正文

方法A(老方法):

作者:太初

表明:音讯种类推行手记种类是系笔者在平日研究开发中等射程序遭遇的大小的难题,恐怕朴实和分寸,但一再却是平日蒙受的题目。笔者对个中比较突出的加以采摘,描述,归结和享用。

在作者实行中,越到有些情状下(举例开荒GIS地图应用),顾客端的JS代码往往要调用GIS地图引擎的API。