使用requireJS异步插件和requireJS jsonp格式之间有区别吗?

时间:2014-05-03 04:08:52

标签: javascript asynchronous requirejs jsonp

使用requireJS jsonp格式

require( ["jquery", "http://api.openweathermap.org/data/2.5/weather?q=Chennai,in&callback=define" ], function( $, weatherData) {

// process stuff

});

使用requireJS异步插件

require( ["jquery", "async!http://api.openweathermap.org/data/2.5/weather?q=Chennai,in" ], function( $, weatherData) {

// process stuff

});
  1. 上述代码块在处理中是否具有相同的效果并产生相同的结果?
  2. 如果他们确实有相同的结果,我们为什么要使用异步插件?

1 个答案:

答案 0 :(得分:0)

1.如果jsonp服务返回一个对象,那么它们会产生相同的结果。但是,如果它返回一个数据数组,那么define函数将使用它作为依赖项列表并抛出错误。异步插件会将数组传递给您的模块。

2.当您需要的脚本添加自己的附加脚本或在调用回调方法之前异步执行某些设置时,async插件也很有用。通常,requirejs会在等待第一个脚本调用define()时超时或返回null。

异步通过创建自己的脚本元素和不受requirejs监视的回调函数来解决这个问题。