Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在famo.us中为曲面加载动态内容(ajax)?_Javascript_Ajax_Famo.us - Fatal编程技术网

Javascript 如何在famo.us中为曲面加载动态内容(ajax)?

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:

我的问题如下:

我有许多曲面与一个唯一的url关联。当我移动到一个特定的表面时,必须在实时(ajax)上触发url,并且应该将响应设置为表面的内容

当我尝试执行上述操作时,它实际上会在应用程序初始化时预先加载所有url及其内容。这会减慢整个过程,而不是我想要的。我只想在用户在该界面上处于活动状态时加载内容

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(该公司)更喜欢单引号,但如果你使用双引号就可以了。这只是一个更好的练习,至少坚持这两种方法中的任何一种。

是的,我后来注意到我有点搞砸了,哈哈,但是没有互联网来编辑评论了。我现在将为其他用户更新它。