[ ArcGIS 10 API for Javascript 系列 ] - 常见问题

 

 

1、当浏览器Window窗口发生resize变化,Map该如何处理

     当浏览器window对象resize时,ArcGIS JavaScript API 是不会自动调整的。当包含map对象的父HTML元素resize必须人工的调用Map.resize()以适应尺寸的变化。同样的,如果这个父HTML元素的位置发生变化,则需要调用Map.reposition().

     IE中,对于window对象的像素尺寸变化,以开似乎就会触发resize事件,即window.onresize。这样的话就会大大降低应用程序的性能,特别是当map占了整个浏览器window对象长度和高度,或者这个map的父HTML元素,每次都会随着IE浏览器尺寸resize而变化的情况。

 我们需要设置一个时间的延迟,以应付上面的情况。代码类似如下:

var resizeTimer;

function init() {

   var map = ...;

    dojo.connect(globals.map, 'onLoad', function (map) {

        //监听window.onresize事件

        dojo.connect(dijit.byId('map'), 'resize', resizeMap);

  });

}

function resizeMap() {

   //清除已经存在的Timer

   clearTimeout(resizeTimer);

   //创建新resize Timer,让它延迟0.5秒触发

   resizeTimer = setTimeout(function () {

         map.resize();

         map.reposition();

   }, 500);

}

 

 

2、在ArcGIS JavaScript API中结合其他客户端RIA框架,如:JQuery ExtJS

     ArcGIS JavaScript API是构建在Dojo框架上的。 在你的应用程序中正在使用其他框架,如:JQuery ExtJS,是否可以结合这些框架呢?答案是可以的。

     JavaScript API是基于Dojo,还是需要引入Dojo精简版的,大小约30k左右,减少了网络传输量。如果你是从Arcgis Online引入Dojo,只需要将srcipt标签的src改为:

   src="http://serverapi.arcgisonline.com/jsapi/arcgis/?v=2.1compact"

    也可以使用本地的compactlibrary。具体这个可以参考离线包的安装说明,安装说明在离线包安装zip中有,

        ArcGIS API for JavaScript  2.0 离线包libraryURL

   http://help.arcgis.com/EN/webapi/javascript/arcgis/help/jshelp/arcgis_js_v20_api.zip

       ArcGIS API for JavaScript  2.1 离线包libraryURL

   http://help.arcgis.com/EN/webapi/javascript/arcgis/help/jshelp/arcgis_js_v21_api.zip

 

  具体 JavaScript API 集合JQuery ExtJS的使用可以参考:

    http://help.arcgis.com/EN/webapi/javascript/arcgis/help/jssamples_start.htm#jssamples/framework_jquery.html

    http://help.arcgis.com/EN/webapi/javascript/arcgis/help/jssamples_start.htm#jssamples/framework_extjs.html

 

 

 

 

 

posted @ 2010-11-18 19:00  爱图--UpdooGIS  阅读(2364)  评论(0编辑  收藏  举报