Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.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 jQuery Mobile仅加载新数据_Javascript_Jquery_Refresh_Settimeout_Jquery Mobile Listview - Fatal编程技术网

Javascript jQuery Mobile仅加载新数据

Javascript jQuery Mobile仅加载新数据,javascript,jquery,refresh,settimeout,jquery-mobile-listview,Javascript,Jquery,Refresh,Settimeout,Jquery Mobile Listview,我在做这个项目是为了学习。目前的任务非常简单: 使用$.getJSON从数据库填充数据。 每n秒检查一次新数据,并将其附加到列表中。 通知用户新的数据更改。 下面是我到目前为止取得的成绩的示例:/Don't忘记运行js 运行示例时,所有问题都将可见 以下是我的JS代码: $(document).bind('pageinit', function(){ var $myList = $( "#myList" ); var newItems = []; function loa

我在做这个项目是为了学习。目前的任务非常简单:

使用$.getJSON从数据库填充数据。 每n秒检查一次新数据,并将其附加到列表中。 通知用户新的数据更改。 下面是我到目前为止取得的成绩的示例:/Don't忘记运行js 运行示例时,所有问题都将可见

以下是我的JS代码:

$(document).bind('pageinit', function(){

    var $myList = $( "#myList" );
    var newItems = [];

  function loadList(){  
  $.getJSON("http://jsbin.com/vayeni/2.js",function(data){

   $.each(data, function( index, value ) {

     newItems.push( "<li><a>" + value.airline + "</a></li>" );
           if(data>newItems){
            alert('New Entry');
            data=newItems;
      }
   });
        $myList.append( newItems.join( "" ) );
        $myList.listview( "refresh" );
        setTimeout(loadList,1000);
  });
  }
    loadList();
});

谢谢你的帮助

您的数据比较不正确

您正在复制以下内容:

<li><a>JetBlue</a></li>
<li><a>Continental</a></li>
...
不平等总是存在的

你应该使用另一种方法。例如,如果JSON数组中的id字段是唯一的,则可以将其作为id属性附加到无序列表中的每个项目。例如:

newItems.push( "<li id=\"" + value.id + "\"><a>" + value.airline + "</a></li>" );

下面是编辑后的片段:

不错,但看起来像setTimeoutloadList,1000;仍然不加载新数据。我在json文件中添加了新数据,希望它会通知我,但运气不好。这可能是什么原因呢?我刚刚又测试了一次,似乎一切正常。您没有忘记将新数据id更改为唯一的,对吗?是的,具有唯一id的新数据。我在JSbin和IntelXDK中尝试了它。请提供您正在尝试的两个JSbin链接-脚本和json。我在本地对其进行了测试,效果良好。太棒了:如果我想把它提升到一个更复杂的层次呢?能够通知任何data.field的任何更改。例如:{id:9,name:Boris}更改为{id:9,name:Peter}?
newItems.push( "<li id=\"" + value.id + "\"><a>" + value.airline + "</a></li>" );
if (!$myList.find('#' + value.id).length) {
  newItems.push( "<li id=\" + value.id + \"><a>" + value.airline + "</a></li>" );
}
if (newItems.length > 0) {
  $myList.append( newItems.join( "" ) );  
}