Javascript 如何在famo.us中为曲面加载动态内容(ajax)?
我的问题如下: 我有许多曲面与一个唯一的url关联。当我移动到一个特定的表面时,必须在实时(ajax)上触发url,并且应该将响应设置为表面的内容 当我尝试执行上述操作时,它实际上会在应用程序初始化时预先加载所有url及其内容。这会减慢整个过程,而不是我想要的。我只想在用户在该界面上处于活动状态时加载内容Javascript 如何在famo.us中为曲面加载动态内容(ajax)?,javascript,ajax,famo.us,Javascript,Ajax,Famo.us,我的问题如下: 我有许多曲面与一个唯一的url关联。当我移动到一个特定的表面时,必须在实时(ajax)上触发url,并且应该将响应设置为表面的内容 当我尝试执行上述操作时,它实际上会在应用程序初始化时预先加载所有url及其内容。这会减慢整个过程,而不是我想要的。我只想在用户在该界面上处于活动状态时加载内容 var ajaxContent = ""; $.ajax({ url: 'ajax/article.php?url='+escape(this.options.url), async:
var ajaxContent = "";
$.ajax({
url: 'ajax/article.php?url='+escape(this.options.url),
async: false,
success: function(data) {
ajaxContent = data;
}
});
this.pageSurface = new Surface({
size: [undefined, undefined],
content: ajaxContent,
classes: ["page"],
properties: {
backgroundColor: '#111111',
fontSize: '16px'
}
});
上面的代码是一个表面循环。我没有Ajax方面的经验,但根据您的描述,我可以看出基本上您是在异步请求数据。。。所以我会根据这个假设来回答 首先,我会稍微改变一下操作顺序
for (var i = 0; i < 10; i++) {
var surface = new Surface({
content : '',
classes : ['page'],
properties : {
backgroundColor : '#111111',
fontSize : '16px'
}
});
var ajax_request = {
url : 'ajax/article.php?url=' + escape(this.options.url),
async : true,
success : function(data) {
//possibly validate the obtained data further
this.setContent(data);
}.bind(surface)
}
var load = function load() {
this.removeListener('mouseover', load);
$.ajax(ajax_request);
}.bind(surface);
surface.on('mouseover', load);
}
for(变量i=0;i<10;i++){
var曲面=新曲面({
内容:“”,
类别:[“页面”],
特性:{
背景色:'#111111',
字体大小:“16px”
}
});
var ajax_请求={
url:'ajax/article.php?url='+转义(this.options.url),
async:true,
成功:功能(数据){
//可能会进一步验证获得的数据
本文件包括内容(数据);
}.绑定(表面)
}
var load=函数加载(){
此.removeListener('mouseover',load);
$.ajax(ajax\u请求);
}.绑定(表面);
表面。在('mouseover',负载)上;
}
我将该曲面绑定到所有特定于该曲面的函数,否则在循环中可能会发生奇怪的事情。这将确保仅一个曲面加载内容,并且内容仅指定给该曲面
最后,您应该注意单引号和双引号,因为您同时使用它们。Famo.us(该公司)更喜欢单引号,但如果你使用双引号就可以了。这只是一个更好的练习,至少坚持这两种方法中的任何一种。是的,我后来注意到我有点搞砸了,哈哈,但是没有互联网来编辑评论了。我现在将为其他用户更新它。