使用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
});
答案 0 :(得分:0)
1.如果jsonp服务返回一个对象,那么它们会产生相同的结果。但是,如果它返回一个数据数组,那么define函数将使用它作为依赖项列表并抛出错误。异步插件会将数组传递给您的模块。
2.当您需要的脚本添加自己的附加脚本或在调用回调方法之前异步执行某些设置时,async插件也很有用。通常,requirejs会在等待第一个脚本调用define()时超时或返回null。
异步通过创建自己的脚本元素和不受requirejs监视的回调函数来解决这个问题。