2013-03-25 56 views
0

我想要做的是每次值增加或减少时播放一些动画。通过这段代码,我每隔一段时间就从一个XML源更新我的值。动画只能在值增加时执行。所以如果我的值是62并且它被更新为62,那么不应该执行动画。当我的值是62并且它被更新为63时,那就是我想要这个动画发生的时间。有谁知道如何修改此代码以实现此目的?每次执行一个函数的值随AJAX而变化

function updateAll() 
{ 
$.ajax({ 
    type: "GET", 
    url: "/ajax/ajax.updatedata.php", 
    data: "", 
    success: function(html){ 
     html = JSON.parse(html); 

     if(html instanceof Object)         
     { 
      // projecten 
      $('#projecten-aantal').html(html['projecten'][0]['waarde']); 
      $('#projecten-afgerond').html(html['projecten'][1]['waarde']); 



      var projecten_aantal = parseInt(html['projecten'][0]['waarde']); 
      var projecten_afgerond = parseInt(html['projecten'][1]['waarde']); 

      var sampleDataProjecten = [ 
       { naam: html['projecten'][0]['naam'], waarde: parseInt(html['projecten'][0]['waarde']), percent: parseFloat(html['projecten'][0]['percent'])}, 
       { naam: html['projecten'][1]['naam'], waarde: parseInt(html['projecten'][1]['waarde']), percent: parseFloat(html['projecten'][1]['percent'])} 
      ]; 

      var settingsProjecten = { 
       enableAnimations: false, 
       source: sampleDataProjecten 
      }; 
      $('#pie-chart-projecten').jqxChart(settingsProjecten); 
      $('#pie-chart-projecten').jqxChart('refresh'); 

      // domeinwinkel 
      var aantalRegistraties = 0; 

      for(var i=0;i<=6;i++) 
      { 
       aantalRegistraties += parseInt(html['domeinwinkel'][i]['waarde']); 
      } 

      $('#domeinwinkel-registraties').html(aantalRegistraties); 

      var sampleDataDomeinwinkel = [ 
       { naam: html['domeinwinkel'][5]['naam'], waarde: parseInt(html['domeinwinkel'][5]['waarde']) }, 
       { naam: html['domeinwinkel'][4]['naam'], waarde: parseInt(html['domeinwinkel'][4]['waarde']) }, 
       { naam: html['domeinwinkel'][3]['naam'], waarde: parseInt(html['domeinwinkel'][3]['waarde']) }, 
       { naam: html['domeinwinkel'][2]['naam'], waarde: parseInt(html['domeinwinkel'][2]['waarde']) }, 
       { naam: html['domeinwinkel'][1]['naam'], waarde: parseInt(html['domeinwinkel'][1]['waarde']) }, 
       { naam: html['domeinwinkel'][0]['naam'], waarde: parseInt(html['domeinwinkel'][0]['waarde']) }, 
       { naam: html['domeinwinkel'][6]['naam'], waarde: parseInt(html['domeinwinkel'][6]['waarde']) } 
      ]; 

      var settingsDomeinwinkel = { 
       enableAnimations: false, 
       source: sampleDataDomeinwinkel 
      }; 

      $('#line-chart-domeinwinkel').jqxChart(settingsDomeinwinkel); 
      $('#line-chart-domeinwinkel').jqxChart('refresh'); 

      // serverload 
      var barcolors = new Array(); 

      //Serverload bars 
      for(var i=0;i<=6;i++) 
      { 
       var setBarWidth = (parseFloat(html['servers'][i]['waarde'])/2)*100; 
       if(setBarWidth > 100) 
       { 
        barcolors[i] = 100; 
       } 
       else 
       { 
        barcolors[i] = setBarWidth; 
       } 
      } 

      $("[id^=serverload]").filter(function() { 
       var i = this.id.substring(10), 
        width = barcolors[i-1]; 

       if (width !== undefined) 
        this.style.width = width + "%"; 

       return width > 50; 
      }).addClass("redbar"); 

      $("[id^=serverload]").filter(function() { 
       var i = this.id.substring(10), 
        width = barcolors[i-1]; 

       if (width !== undefined) 
        this.style.width = width + "%"; 

       return width <= 50; 
      }).removeClass("redbar"); 
     } 
     else 
     { 
      console.log('Fout bij het updaten van de data: html is geen array'); 
      console.log(html); 
     } 
    } 
}); 

}关于上述代码

的更多信息:

上面的代码是更新的值(与文本内部和JQuery线和饼图span元素),这将从XML来检索文件,其中包含以下顺序的数据(翻译):

<root> 
    <projects> 
    <entry> 
    <name>Total</name> 
    <value>10</value> 
    <percent>100</percent> 
    </entry> 
    <entry> 
    <name>Finished</name> 
    <value>5</value> 
    <percent>50</percent> 
    </entry> 
    </projects> 
    <tasks> 
    <entry> 
    <name>Total</name> 
    <value>20</value> 
    </entry> 
    </tasks> 
    etc. 
</root> 

XML文件将由cron作业进行更新,所以没有直接使用一个数据库或中隐藏字段来保存价值。

+0

哪个键有价值 – 2013-03-25 13:01:27

回答

0

是的 - 保留一个公共变量,它将代表您的currentScore。每次您收到AJAX响应时,请检查找到的值并将其与公共currentScore进行比较。从那里,您可以使用简单的if条件来确定currentScore是否大于或小于返回值。

0

将当前值保留在隐藏字段中,当您获得响应时,请在完成逻辑后检查隐藏值,并使用更新后的值更新隐藏值。

相关问题