Ajax - Javascript background request

Κώδικας, πληροφορίες, ερωτήσεις και απαντήσεις σχετικές με την JavaScript.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Άβαταρ μέλους
philos
Δημοσιεύσεις: 260
Εγγραφή: 30 Αύγ 2007 23:32

Ajax - Javascript background request

Δημοσίευση από philos » 14 Φεβ 2015 16:39

Έχω φτιάξει το εξής script για την μηχανή vbulletin. Είναι ουσιαστικά ένας javascript κώδικας που μπαίνει στο <head> της σελίδας. Το {vb:raw vboptions.cookietimeout} είναι ο χρόνος σε seconds μετά τον οποίο ο χρήστης παύει να φαίνεται στους συνδεδεμένους χρήστες. Έτσι, στο script αυτό, αν παρέλθει ο χρόνος και ο χρήστης εξακολουθεί να έχει ανοιχτό το παράθυρο του browser στη σελίδα, κάνει ένα GET request προκειμένου το σύστημα να τον ξανά θεωρήσει online (αυτό το αναλαμβάνει η μηχανή vbulletin, εμάς μας ενδιαφέρει να γίνει το request).

Έχω λάβει όμως παρατηρήσεις ότι αν το {vb:raw vboptions.cookietimeout} είναι υψηλό, πχ 1800 seconds (μισή ώρα), κάνει το request στη μισή ώρα που είναι ανοιχτό το παράθυρο, αλλά μετά (για 2η φορά και ύστερα) δε το κάνει.
Σε δοκιμές με λίγα seconds κάνει κανονικά συνέχεια το request.

Πως σας φαίνεται ο κώδικας; Μπορεί μια αλλαγή σε αυτόν να διορθώσει το πρόβλημα; Ευχαριστώ :)

Κώδικας: Επιλογή όλων

<vb&#58;if condition="$show&#91;member&#93;">
    <script type="text/javascript">
      var sc_sessionrefresh_handleSuccess = function&#40;o&#41;
      &#123;
      	if&#40;o.responseText !== undefined&#41;
      	&#123;
      		if &#40;sc_sessionrefresh_callback.object_name&#91;o.tId&#93; !== undefined&#41;
      		&#123;
      			fetch_object&#40;sc_sessionrefresh_callback.object_name&#91;o.tId&#93;&#41;.innerHTML = o.responseText;
      		&#125;
      	&#125;
      &#125;
      var sc_sessionrefresh_handleFailure = function&#40;o&#41;
      &#123;
      	if&#40;o.responseText !== undefined&#41;
      	&#123;
      		alert&#40;o.responseText&#41;;
      	&#125;
      &#125;
      var sc_sessionrefresh_callback =
      &#123;
      	success&#58; sc_sessionrefresh_handleSuccess,
      	failure&#58; sc_sessionrefresh_handleFailure,
      	timeout&#58; vB_Default_Timeout,
      	cache&#58; false,
      	object_name&#58; new Array&#40;&#41;
      &#125; 
      
      function sc_sessionrefresh_fetch&#40;&#41;
      &#123;	
      	var sUrl = document.URL;                    
      	var request = YAHOO.util.Connect.asyncRequest&#40;'GET', sUrl, sc_sessionrefresh_callback&#41;;
      	return true;
      &#125;
      
      setInterval&#40;function &#40;&#41; &#123;
        sc_sessionrefresh_fetch&#40;&#41;; 
      &#125;, &#123;vb&#58;raw vboptions.cookietimeout&#125; * 1000&#41;;
    </script>
</vb&#58;if>

Απάντηση

Επιστροφή στο “JavaScript και Frameworks”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες