प्रदर्शन वर्तमान समय प्रत्येक मिनट (प्रोटोटाइप के Ajax.PeriodicalUpdater साथ?)

वोट
3

मैं एक ऐप्लिकेशन है जो प्रदर्शित वर्तमान समय आ गया है जब एक पृष्ठ को खोलता है। मैं उस समय हर 30 सेकंड अद्यतन करने के लिए करना चाहते हैं। मैं प्रोटोटाइप Ajax.PeriodicalUpdater के बारे में पढ़ा है और यह एक जवाब हो रहा है। यह कैसे मैं php के साथ पृष्ठ लोड पर स्थिर समय प्रदर्शन को प्राप्त होता है:

    <tr>
      <td>
        <input class=standard type=text name=start_time 
           value=<?php echo prev_end();?>>
             <!--prev_end is last end time from database-->
      </td>
        <td>
        <input class=standard type=text name=end_time 
           value=<?php echo $now;?>>
            <!--$now = date(G:i);-->
      </td>

यह वही मैं प्रोटोटाइप के साथ प्रयास किया है है:

<script type=javascript>
        new Ajax.PeriodicalUpdater(updater, unow.php, {frequency : 30});    
        </script>
        ...
       <tr>
          <td>
            <input class=standard type=text name=start_time 
               value=<?php echo prev_end();?>>
          </td>
            <td>
            <input id=updater class=standard type=text name=end_time 
               value=>
          </td>

कहाँ unow.php यह करता है

<?php
  $unow=date(G:i);
  echo $unow;
?>

ऐसा लगता है कि मैं इनपुट अपडेटर में unow.php से मूल्य डाल करने के लिए एक कॉलबैक की जरूरत नहीं है के बाद से PeriodicalUpdater एलीमेंट आईडी के लिए कहता है। मैं क्या खो रहा हूँ?

03/12/2008 को 17:41
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


4 जवाब

वोट
3

जब तक आप अपने समय उत्पादन हमेशा सर्वर समय क्षेत्र मिलान करने के लिए चाहते हैं, आप ग्राहक के पक्ष जावास्क्रिप्ट का एक सा के साथ बहुत जल्दी ऐसा करने और पूरी तरह से सर्वर से संपर्क करने को छोड़ सकता है।

<html>
<body onload="init();">
  <div id=time></div>
</body>
</html>
<script type=text/javascript>

function init()
{
    updateTime();
    window.setInterval(updateTime,30000);
}


function updateTime()
{
    var time = document.getElementById('time');
    time.innerText = new Date().toLocaleString();
}

</script>
03/12/2008 को 18:02
का स्रोत उपयोगकर्ता

वोट
1

यह सर्वर की मार के बिना पूरा किया जा सकता। प्रोटोटाइप के PeriodicalExecuter वर्ग जावास्क्रिप्ट का setInterval समारोह है, जो आपको एक JavaScript फ़ंक्शन हर एक्स सेकंड चलाने की अनुमति देता समाहित।

time.html

<html>
<head>
<title>Time</title>
<script type="text/javascript" src="time.js">
</head>
<body>
   <span id="timeDisplay"></span>
</body>
</html>

time.js

document.observe("dom:loaded", function() {
   new PeriodicalExecuter(updateTimeDisplay, 30);
});

updateTimeDisplay = function(pe) { // accepts the PeriodicalExecuter instance
   var now = new Date();
   $('timeDisplay').innerHTML = now.toString();
};
03/12/2008 को 23:47
का स्रोत उपयोगकर्ता

वोट
1

शायद प्रोटोटाइप के Ajax.Updater तत्व है, एक इनपुट के मूल्य की सामग्री को बदल जाता है।

बदलने का प्रयास करें

<input id="updater" class="standard" type="text" name="end_time" 
           value="">

सेवा मेरे

 <span id="updater"></span>

लेकिन जैसे-जैसे दूसरों को सुझाव दिया है, समय अद्यतन करने के लिए सर्वर से टकराने के प्रत्येक 30 सेकंड केवल overkill है। आप सर्वर समय क्षेत्र में समय प्रदर्शित करने के लिए wan't हैं, बस जब पेज के निर्माण सर्वर समय के साथ इनपुट बना सकते हैं और एक साथ इस समय अपडेट setIntervalजावास्क्रिप्ट से।

04/12/2008 को 17:27
का स्रोत उपयोगकर्ता

वोट
1

इनपुट के लिए धन्यवाद। तुम लोग मुझे जावास्क्रिप्ट का मूल एक इनपुट बॉक्स के लिए समय को खिलाने के लिए क्षमता की ओर इशारा किया। अंत में, w3schools से इस 24-घंटे घड़ी समाधान क्या मेरे लिए काम किया था।

<head>
<script type="text/javascript">
            function startTime()
            {
            var today=new Date();
            var h=today.getHours();
            var m=today.getMinutes();

            // add a zero in front of numbers<10
            m=checkTime(m);
            s=checkTime(s);
            document.getElementById('endtime').value=h+":"+m;
            t=setTimeout('startTime()',500);
            }

            function checkTime(i)
            {
            if (i<10)
              {
              i="0" + i;
              }
            return i;
            }
        </script>

    </head>
    <body onload="startTime()">

फिर इस शरीर में:

<input id="endtime" class="standard" type="text" name="end_time" value="">
15/12/2008 को 17:12
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more