Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.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-如何重用JSON中的数据?_Javascript_Jquery_Html_Twitter Bootstrap - Fatal编程技术网

Javascript JQuery-如何重用JSON中的数据?

Javascript JQuery-如何重用JSON中的数据?,javascript,jquery,html,twitter-bootstrap,Javascript,Jquery,Html,Twitter Bootstrap,我有一个setTimeout,每5秒重新加载一个函数 间隔=设置超时(更新列表,5000) 更新_列表,在视图中渲染入口。当有许多入口时,如果您向下滚动,列表将清空并重新加载每个入口 我怎样才能做到,这样代码就可以比较新旧入口,只渲染新入口并删除旧入口 function update_list() { $('#list').empty(); var month= new Array(); month[0] = '{% trans 'Jan' %}'; m

我有一个setTimeout,每5秒重新加载一个函数

间隔=设置超时(更新列表,5000)

更新_列表,在视图中渲染入口。当有许多入口时,如果您向下滚动,列表将清空并重新加载每个入口

我怎样才能做到,这样代码就可以比较新旧入口,只渲染新入口并删除旧入口

    function update_list()
{
    $('#list').empty();
    var month= new Array();

    month[0] = '{% trans 'Jan' %}';
    month[1] = '{% trans 'Feb' %}';
    month[2] = '{% trans 'Mar' %}';
    month[3] = '{% trans 'Apr' %}';
    month[4] = '{% trans 'May' %}';
    month[5] = '{% trans 'Jun' %}';
    month[6] = '{% trans 'Jul' %}';
    month[7] = '{% trans 'Aug' %}';
    month[8] = '{% trans 'Sep' %}';
    month[9] = '{% trans 'Oct' %}';
    month[10] = '{% trans 'Nov' %}';
    month[11] = '{% trans 'Dec' %}';

    today = new Date();
    var ddToday = ('0'+today.getDate()).slice(-2);
    var mmToday = today.getMonth()+1;
    mmToday = ('0'+mmToday).slice(-2);

    // hace llamado
    var getUrl = "{{ meetings_api_url }}" + url_args;
    $.get(getUrl, function(data){
        if (is_ongoing_active ){
            interval = setTimeout(update_list, 5000);
        }

        var Data = data;

        var i;
        var Data = Data.meetings;
        jQuery(Data).each(function(i, item){

            var meeting_id = item.meeting_id;
            var name = item.name;
            var begin = new Date(item.begin);
            var end = item.end;
            var participants = item.total_participants;

            var ddBegin = begin.getDate();
            var mmBegin = begin.getMonth()+1;
            mmBegin = ('0'+mmBegin).slice(-2);
            var MMBegin = month[mmBegin-1];
            var hhBegin = ('0'+begin.getHours()).slice(-2);
            var minBegin = ('0'+begin.getMinutes()).slice(-2);

            if(end != null){
                var headerBegin = '('+ddBegin+' '+MMBegin+') '+hhBegin+':'+minBegin;
                end = new Date(end);
                var ddEnd = end.getDate();
                var mmEnd = end.getMonth()+1;
                mmEnd = ('0'+mmEnd).slice(-2);
                var MMEnd = month[mmEnd-1];
                var hhEnd = ('0'+end.getHours()).slice(-2);
                var minEnd = ('0'+end.getMinutes()).slice(-2);

                if(ddBegin == ddEnd && mmBegin == mmEnd){
                    var headerEnd = hhEnd+':'+minEnd;
                }else{
                    var headerEnd = '('+ddEnd+' '+MMEnd+') '+hhEnd+':'+minEnd;
                }
            }else{
                headerBegin = hhBegin+':'+minBegin;
                if (ddBegin == ddToday && mmBegin == mmToday){
                    var headerEnd = '{% trans 'Ongoing' %}';
                } else{
                    headerBegin = '('+ddBegin+' '+MMBegin+') '+hhBegin+':'+minBegin;
                    var headerEnd = '{% trans 'Ongoing' %}';
                }
            }

            render_meeting(meeting_id, name, headerBegin, headerEnd, participants);
        })

    });
}

function render_meeting(id, title, begin, end, participants)
{
    var meeting = `
        <a href="` + meeting_url_format.replace('0', id) + `" class="list-group-item">
            <h4 class="list-group-item-heading">` + title + `</h4>
            <p class="list-group-item-text">
                ` + begin + ` - ` + end +
                `<span class="pull-right">
                    <span class="glyphicon glyphicon-user"></span>
                    ` + participants +`
                </span>
            </p>
        </a>`
    $('#list').append(meeting);
}
函数更新\u列表()
{
$('#list').empty();
var month=新数组();
月[0]='{%trans'一月'%}';
月[1]='{%trans'二月'%}';
月[2]='{%trans'三月'%}';
月[3]='{%trans'四月'%}';
月[4]='{%trans'可能'%}';
月[5]='{%trans'六月'%}';
月[6]='{%trans'七月'%}';
月[7]='{%trans'八月'%}';
月[8]='{%trans'九月'%}';
月[9]='{%trans'十月'%}';
月[10]='{%trans'十一月'%}';
月[11]='{%trans'十二月'%}';
今天=新日期();
var ddToday=('0'+today.getDate()).slice(-2);
var mmToday=today.getMonth()+1;
mmToday=('0'+mmToday).slice(-2);
//拉马多酒店
var getUrl=“{{meetings_api_url}}”+url_args;
$.get(getUrl,函数(数据){
如果(正在进行中或活动中){
间隔=设置超时(更新列表,5000);
}
var数据=数据;
var i;
var数据=Data.meetings;
jQuery(数据).each(函数(i,项){
var meeting_id=item.meeting_id;
var name=item.name;
var begin=新日期(项目.begin);
var end=item.end;
var参与者=项目总参与者;
var ddBegin=begin.getDate();
var mmBegin=begin.getMonth()+1;
mmBegin=('0'+mmBegin).slice(-2);
变量MMBegin=月份[MMBegin-1];
var hhbegen=('0'+begin.getHours()).slice(-2);
var minBegin=('0'+begin.getMinutes()).slice(-2);
如果(结束!=null){
var headerBegin='('+ddBegin+'+MMBegin+)'+hhBegin+':'+minBegin;
结束=新日期(结束);
var ddEnd=end.getDate();
var mmEnd=end.getMonth()+1;
mmEnd=('0'+mmEnd).slice(-2);
var MMEnd=月[MMEnd-1];
var hhand=('0'+end.getHours()).slice(-2);
var minEnd=('0'+end.getMinutes()).slice(-2);
if(ddBegin==ddEnd&&mmBegin==mmEnd){
var headerEnd=hhand+':'+minEnd;
}否则{
变量headerEnd='('+ddEnd+'+MMEnd+)'+hhEnd+':'+minEnd;
}
}否则{
headerBegin=hhbeagin+':'+minBegin;
如果(ddBegin==ddToday&&mmBegin==mmToday){
var headerEnd='{%trans'正在进行'%}';
}否则{
headerBegin='('+ddBegin+'+MMBegin+)'+hhBegin+':'+minBegin;
var headerEnd='{%trans'正在进行'%}';
}
}
主持会议(会议id、名称、负责人姓名、负责人姓名、与会者);
})
});
}
功能呈现会议(id、标题、开始、结束、参与者)
{
var会议=`
`
$(“#列表”)。追加(会议);
}

您应该将所有信息保存在一个数组中,每次检查新信息时,将其与当前信息进行比较,只添加新信息

内部

jQuery(Data).each(function(i, item){
在调用呈现过程之前,请检查新会议是否已存在:

render_meeting(meeting_id, name, headerBegin, headerEnd, participants);

谢谢你,朋友!我没想过。我将发布它是如何工作的。