Javascript 对于绝对需要的文件,Synchonous AJAX调用的替代方案是什么?
我目前正在构建一个主干应用程序,在继续执行某些任务之前,我绝对需要一些文件 例如:Javascript 对于绝对需要的文件,Synchonous AJAX调用的替代方案是什么?,javascript,jquery,ajax,backbone.js,Javascript,Jquery,Ajax,Backbone.js,我目前正在构建一个主干应用程序,在继续执行某些任务之前,我绝对需要一些文件 例如: 用于渲染视图的模板文件 保存整个应用程序副本的language.json文件 现在我想避免的是把我带到地狱的回调。就像我永远不能使用this.template(data)一样,因为如果模板已经加载,我总是必须检查延迟对象/承诺 getTemplate: function(path) { return $.get('/templates/'+path).then(function(src) {
language.json
文件this.template(data)
一样,因为如果模板已经加载,我总是必须检查延迟对象/承诺
getTemplate: function(path) {
return $.get('/templates/'+path).then(function(src) {
// is the copy already available?
return App.Deferreds.copy.then(function(copy) {
// insert copy into this html string
src = App.Models.Copy.insertCopy(src, copy);
// return a handlebars tempate with copy pre-filled
return Handlebars.compile(src);
});
});
}
因此,我认为我应该使这些文件的AJAX请求同步,并返回文件内容,而不是承诺
getTemplate: function(path) {
var template;
$.ajax({
dataType: "json",
url: '/templates/'+path,
async: false,
success: function(src) {
// insert copy into this html string
src = App.Models.Copy.insertCopy(src, copy);
template = Handlebars.compile(src);
}
});
return template;
}
现在chrome告诉我主线程上的同步xmlhttprequest已被弃用。经过研究,它确实是从规范中删除(或将被删除)
现在我的选择是什么?
如何通过JavaScript将绝对需要的文件加载到web应用程序中
当我总是要等待那些文件时,首先使用AJAX似乎有些奇怪。似乎你在尝试实现一个穷人的依赖性管理系统。
你应该考虑使用一个现存的,比如,或者
,好像你正在试图实施一个穷人的依赖管理系统。
您应该考虑使用现有的一个,例如,或使用同步的JavaScript AJAX。在应用程序确定/用户选择语言加载后JSON被加载。想想52种语言——当然我只想加载必要的一种。我不预组合模板,因为我必须在某一点或另一点(例如语言切换、模型更改)重新编译它们。是否有理由不使用模块加载器,如requireJS或browserify?使用普通Javascript AJAX和synchronous。json在应用程序确定/用户选择要加载的语言后加载。想想52种语言——当然我只想加载必要的一种。我不预组合模板,因为我必须在某一点或另一点(例如语言切换、模型更改)重新编译它们。是否有理由不使用模块加载器,如requireJS或browserify?使用普通Javascript AJAX和synchronous。json在应用程序确定/用户选择要加载的语言后加载。想想52种语言——当然我只想加载必要的一种。我不预组合模板,因为我必须在某个时刻重新编译它们(例如语言切换、模型更改)。有没有理由不使用诸如requireJS或browserify之类的模块加载器?好主意-当它解决我的问题时,我会看一看并接受你的答案好主意-当它解决我的问题时,我会看一看并接受你的答案好主意-当它解决我的问题时,我会看一看并接受你的答案