dojo.require("esri.xxx");是否必须的,在什么情况下需要,什么情况下不需要?

在维护以前的一个arcgis js项目,用的早期的Legacy Module Require方式,有些问题不是很明白:
在新建一个对象之前,必须要使用dojo.require("esri.xxx");将模块引入吗?还是直接可以new,只不过加上命名空间全名即可?
如下代码:
var layer = new esri.layers.ArcGISTiledMapServiceLayer(url);
按理说需要dojo.require("esri.layers.agstiled");
但是,目前没有这条语句,依旧可以运行。
我看了esri官方早期在很多场合的ppt,有这个代码片段
<script type="text/Javascript">
dojo.require("esri.map");
dojo.addOnLoad(function ()
{
var MyMap = new esri.Map("MyMapDiv");
var MyTiledMapServiceLayer = new esri.layers.ArcGISTiledMapServiceLayer
("http://www.arcgisonline.cn/Arc ... 6quot;);
MyMap.addLayer(MyTiledMapServiceLayer)
}
)
</script>

都是需要先"dojo.require("esri.map");",我注释掉该行代码,程序照样可以运行。

那么问题来了,dojo.require("esri.xxx");是否必须的,在什么情况下需要,什么情况下不需要?
已邀请:

rongc

赞同来自:

这个是dojo的类引用,通过dojo.require引入相关文件。注释掉可以猜测是缓存?
现在不要这样写了,新版API不再支持这种写法,通过AMD的方式去引入。API官网有详细说明。

binghuan123 - 80后

赞同来自:

代码没有使用模块化的写法,所以可能是其他地方有require过了。

narutogis - http://www.narutogis.com

赞同来自:

老版本才会 dojo.require 新版都是 define里面直接引入,看官网的DEMO吧,https://developers.arcgis.com/ ... ples/

要回复问题请先登录注册