方法应该很多的,用JS的setInterval是其中一种。

解决方案 »

  1.   

    谢谢nicholsky。
    还有问题是,他是怎么得到实时数据的呢?
      

  2.   

    而且网页代码上也没有看到setInterval的出现
      

  3.   

    你说不用刷新实时显示,我只是说setInterval可以实现。我没看过Maxthon的代码。但如果你要实现不刷新实时显示一些数据。可以用个iframe套个页面,或者用script套个aspx,或者你去研究下Maxthon。
      

  4.   

    不好意思我搞错了,Maxthon好像是用了setInterval,这是代码,谁能看懂的?////////////////////////////////////////////////////////////////////
    // Maxthon Website Scripts
    ////////////////////////////////////////////////////////////////////
    var maxWebsite = {};maxWebsite.languages = {
    "zh-cn": "zh-cn"
    };
    maxWebsite.counterLoadInterval = 10000; // ms
    maxWebsite.counterDataURL = "http://www.maxthon.cn/api/counter";
    maxWebsite.failedCounterCall = 0;//------------------------------------------------------------------
    // Update Counter
    //------------------------------------------------------------------
    maxWebsite.updateCounter = function(){ if(maxWebsite.inCounterRequest) return;
    if(maxWebsite.failedCounterCall>10) return; // first time only
    if(!maxWebsite.targetCounterNumber){ maxWebsite.targetCounterNumber = 0;
    maxWebsite.currentCounterNumber = 0;
    maxWebsite.counterDiff = 0; // another request
    maxWebsite.intervalLoad = setInterval("maxWebsite.updateCounter()", maxWebsite.counterLoadInterval); maxWebsite.intervalTick= setInterval("maxWebsite.counterTick()", 1000); } // load remote data
    var req;
    try { req = new XMLHttpRequest(); }
    catch (e) { try { req = new ActiveXObject("Microsoft.XMLHTTP"); }
    catch (e) { return null; }} maxWebsite.startCounter = new Date(); try{ req.open("GET", maxWebsite.counterDataURL, true);
    req.onreadystatechange = get_cb(req);
    req.send('');
    maxWebsite.inCounterRequest = true; }catch(e){
    maxWebsite.failedCounterCall++;
    } req = null;}function get_cb(req) {
    return function() {
    if (req.readyState == 4){
    maxWebsite.updateCounterBinder(req);
    req = null;
    }
    };
    }//------------------------------------------------------------------
    // Update Counter via Ajax - Binder
    //------------------------------------------------------------------
    maxWebsite.updateCounterBinder = function(req){ if(req.status == 200 || req.status==0){ var cnt = req.responseText;
    cnt = parseInt(cnt.replace(/,/g,''), 10);
    if(isNaN(cnt)) return; // first run
    if(maxWebsite.targetCounterNumber == 0){
    maxWebsite.targetCounterNumber = cnt - 10;
    maxWebsite.currentCounterNumber = cnt - 10;
    } maxWebsite.inCounterRequest = false;
    maxWebsite.counterTick(cnt); }else{ maxWebsite.failedCounterCall++; }}
    //------------------------------------------------------------------
    // Write Value to Counter Area
    //------------------------------------------------------------------
    maxWebsite.writeCounter = function(intNumber){ intNumber = Math.round(intNumber);
    if(intNumber == 0) return; var arrNumber = intNumber.toString().split("");
    arrNumber.reverse(); var strNumber = []; var len = arrNumber.length - 1;
    for(var i=0;i<len;i++){
    strNumber.unshift(arrNumber[i]);
    if(i%3 == 2) strNumber.unshift(",");
    }
    strNumber.unshift(arrNumber[len]); strNumber = strNumber.join(""); var obj = document.getElementById("counternumber");
    if(obj) obj.innerHTML = strNumber;}
    //------------------------------------------------------------------
    // Counter Ticking
    //------------------------------------------------------------------
    maxWebsite.counterTick = function(intNumber){ if(intNumber){ // calculate diff
    var diff = intNumber - maxWebsite.targetCounterNumber;
    var timeDiff = maxWebsite.counterLoadInterval + (new Date() - maxWebsite.startCounter);
    diff = diff / timeDiff; maxWebsite.counterDiff = diff * 1000; maxWebsite.currentCounterNumber = maxWebsite.targetCounterNumber;
    maxWebsite.targetCounterNumber = intNumber; }else{ // just add up with diff
    if(maxWebsite.currentCounterNumber < maxWebsite.targetCounterNumber){
    maxWebsite.currentCounterNumber += maxWebsite.counterDiff;
    } } maxWebsite.writeCounter(maxWebsite.currentCounterNumber);}
    window.onload = maxWebsite.init;
      

  5.   

    唉!你们可真没用!我现在知道用的是Ajax的XMLHttpRequest()啦!