2017-03-08 3 views
1

Ich brauche eine Seite über AJAX aufgerufen, um jedes Mal, wenn ich es anfordern, vollständig neu zu laden. Zur Zeit, wenn sie zum ersten Mal angefordert wird, lädt sie die Seite korrekt, aber wenn sie das zweite Mal angefordert wird, lädt sie mit dem vorherigen Ergebnis und lädt dann nach 2 oder 3 Sekunden das neue Ergebnis.Reload aufgerufene Seite bei jedem Ajax Call

Ich möchte, dass es ein Ladebild zeigt, während es die Seite in mein div lädt.

Siehe Code Ich verwende unter:

$io('#load_order_preview').on('click', function(){ 

      var portfolioName  = $io("#portfolioName").val(); 
      var instrumentType  = $io("#instrumentType").val(); 
      var securityName  = $io("#securityName").val(); 
      var orderType   = $io("#orderType").val(); 
      var priceType   = $io("#priceType").val(); 
      var quantityRequested = $io("#quantityRequested").val(); 
      var orderTermName  = $io("#orderTermName").val(); 
      var limitPrice   = $io("#limitPrice").val(); 
      var stockPrice   = $io("#stockPrice").val(); 
      var stopPrice   = $io("#stopPrice").val(); 

      var dataString = 'portfolioName='+ portfolioName + '&instrumentType=' + instrumentType + '&securityName=' + securityName + '&orderType=' + orderType + '&priceType=' + priceType + '&quantityRequested=' + quantityRequested + '&orderTermName=' + orderTermName + '&limitPrice=' + limitPrice + '&stopPrice=' + stopPrice; 

      $io('#load_popup_modal_orderpreview').load(
       'load-preview.php?' + dataString 
      }).modal({ 
      backdrop: 'static', 
      keyboard: false 
      }).show(); 

     }); 

ich wie etwas Hilfe wirklich würde dieses Problem zu lösen.

Vielen Dank im Voraus.

+0

entfernen Sie zusätzliche Semikolumn aus 'Hintergrund: 'statisch',;'. –

+0

Wo ist dein Ajax Anruf? – user7417866

+0

Ich habe das extra Semikolon entfernt und es funktioniert immer noch nicht und es tut mir leid, dass ich keinen Ajax benutze. nur regelmäßige jquery Javascript –

Antwort

0

versuchen diese, nicht sicher, dass es für die regelmäßige Javascript arbeiten,

 $io('#load_order_preview').on('click', function(){ 

var dataString = 'portfolioName='+ portfolioName + '&instrumentType=' + instrumentType + '&securityName=' + securityName 
        + '&orderType=' + orderType + '&priceType=' + priceType + '&quantityRequested=' + quantityRequested 
        + '&orderTermName=' + orderTermName + '&limitPrice=' + limitPrice + '&stopPrice=' + stopPrice; 

       $io('#load_popup_modal_orderpreview').load(
        'load-preview.php?' + dataString 
       }).modal({ 
       backdrop: 'static', 
       keyboard: false, 
cache: false 
       }).show(); 

}); 

im Grunde das Problem der Cache ist, wenn Sie die Seite neu zu laden, es Werte aus dem Cache genommen und, wenn Sie neu zu laden zum 2-3 mal Abholen vom Server.

bearbeiten ==

Wenn Cache nicht Ihre prob ist, und da es 2-3 sec nahm neue Bilder zu reflektieren, ist es prob mit Asynchron-Verhalten Browser. Wenn Sie eine Anfrage stellen, wartet der Browser nicht auf Ihre Antwort und geht weiter, wenn er eine Antwort erhält, wird er darauf reagieren.

Lösung,

try Ajax-Aufruf zu machen und auf Erfolg Antwort tun, um Ihre Aktivität

oder

(letzte Option und keine gute Praxis) Machen Sie Ihren Anruf async falsch,

$io('#load_order_preview').on('click', function(){ 

var dataString = 'portfolioName='+ portfolioName + '&instrumentType=' + instrumentType + '&securityName=' + securityName 
        + '&orderType=' + orderType + '&priceType=' + priceType + '&quantityRequested=' + quantityRequested 
        + '&orderTermName=' + orderTermName + '&limitPrice=' + limitPrice + '&stopPrice=' + stopPrice; 

       $io('#load_popup_modal_orderpreview').load(
        'load-preview.php?' + dataString 
       }).modal({ 
       backdrop: 'static', 
       keyboard: false, 
cache: false, 
async: false 
       }).show(); 

}); 

Beachten Sie, dass Ihr Browser warten muss, bis Ihr Server auf Ihren Anruf reagiert.

+0

Hallo, die Cache-Eigenschaft hat es nicht gelöst. Das Problem ist, dass es nach 2 - 3 Sekunden die korrekten Zahlen lädt, aber es zeigt die vorherigen Zahlen an, bevor die neu angeforderten Zahlen geladen werden (was den Benutzer verwirren könnte, wenn sie ungeduldig sind). Ich möchte mindestens ein Ladebild anzeigen die neuen Figuren sind fertig –

+0

könntest du es geigen? – user7417866

+0

kann nicht in der Lage sein, es zu geigen. zu viele meiner HTML werden dynamisch aufgerufen. Viele enthalten usw. –