2015-06-19 11 views
6

W sieci natknąłem się na kilka sposobów wstępnego załadowania/przekierowania strony.Normalne przekierowanie lub preload

Teraz jest pytanie czy to jest właściwy sposób obsłużyć przekierowanie z napięciem wstępnym (załaduj następną stronę asynchronicznie, a jednocześnie odzwierciedlających aktualną stronę)

$.get("page.php", function (data) { 
    document.open(); 
    document.write(data); 
    document.close(); 
    window.history.pushState("Title", "Title", "/page.php"); 
    $.cache = {}; 
}, "html"); 

Albo powinienem lepiej pozostać przy regularnym przekierowanie?

window.location = "page.php"; 

Kolejna strona zawiera pełnoekranowego wideo i ścieżki dźwiękowej (Audio)

Dzięki.

+0

Możesz użyć Ajax: https://en.wikipedia.org/wiki/Ajax_(programming), aby załadować następną stronę async! – Behzad

+0

pomocny link: http://www.w3schools.com/json/json_http.asp – Behzad

Odpowiedz

4

Możesz użyć Ajax, aby załadować następną stronę asynchroniczną. Oto przykład prostego żądania Ajaxa przy użyciu metody GET, napisanej w JavaScript.

AJAX oznacza Asynchronous JavaScript and XML, a dla obiektu XMLHttpRequest, aby zachowywać się jak AJAX, parametru asynchronicznej metody open() musi być ustawiona na true: xhr.open('get', 'send-ajax-data.php', true);

get-ajax -data.js:

// This is the client-side script. 

// Initialize the Ajax request. 
var xhr = new XMLHttpRequest(); 
xhr.open('get', 'send-ajax-data.php', true); // `true` makes the request asynchronous 

// Track the state changes of the request. 
xhr.onreadystatechange = function() { 
    var DONE = 4; // readyState 4 means the request is done. 
    var OK = 200; // status 200 is a successful return. 
    if (xhr.readyState === DONE) { 
     if (xhr.status === OK) { 
      alert(xhr.responseText); // 'This is the returned text.' 
     } else { 
      alert('Error: ' + xhr.status); // An error occurred during the request. 
     } 
    } 
}; 

// Send the request to send-ajax-data.php 
xhr.send(null); 

A na koniec można skorzystać z poniższego kodu, aby przeładować stronę lub przekierować dane:

document.getElementById("myDiv").innerHTML = xhr.responseText; 
+1

Oto kilka dodatkowych informacji o zgodności przeglądarki w przypadku, gdy program OP jest zainteresowany http://caniuse.com/#feat=xhr2 – zfrisch

Powiązane problemy