Saya melihat ini dan berpikir itu terlihat cukup bagus jadi saya menjalankan beberapa tes di atasnya.
Ini mungkin tampak seperti pendekatan yang bersih, tetapi dalam hal kinerja itu tertinggal 50% dibandingkan dengan waktu yang dibutuhkan untuk memuat halaman dengan fungsi beban jQuery atau menggunakan pendekatan javascript vanilla XMLHttpRequest yang kira-kira mirip satu sama lain.
Saya membayangkan ini karena di bawah kap ia mendapatkan halaman dengan cara yang sama persis tetapi juga harus berurusan dengan membangun objek HTMLElement yang sama sekali baru juga.
Singkatnya saya sarankan menggunakan jQuery. Sintaksnya mudah digunakan, dan memiliki panggilan balik yang terstruktur dengan baik untuk Anda gunakan. Ini juga relatif cepat. Pendekatan vanilla mungkin lebih cepat dengan beberapa milidetik yang tidak terlalu mencolok, tetapi sintaksisnya membingungkan. Saya hanya akan menggunakan ini di lingkungan di mana saya tidak memiliki akses ke jQuery.
Berikut adalah kode yang saya gunakan untuk menguji - ini cukup sederhana tetapi waktu kembali sangat konsisten di beberapa percobaan jadi saya akan mengatakan tepat sekitar + - 5ms dalam setiap kasus. Pengujian dijalankan di Chrome dari server rumah saya sendiri:
<!DOCTYPE html>
<html>
<head>
<script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
</head>
<body>
<div id="content"></div>
<script>
/**
* Test harness to find out the best method for dynamically loading a
* html page into your app.
*/
var test_times = {};
var test_page = 'testpage.htm';
var content_div = document.getElementById('content');
// TEST 1 = use jQuery to load in testpage.htm and time it.
/*
function test_()
{
var start = new Date().getTime();
$(content_div).load(test_page, function() {
alert(new Date().getTime() - start);
});
}
// 1044
*/
// TEST 2 = use <object> to load in testpage.htm and time it.
/*
function test_()
{
start = new Date().getTime();
content_div.innerHTML = '<object type="text/html" data="' + test_page +
'" onload="alert(new Date().getTime() - start)"></object>'
}
//1579
*/
// TEST 3 = use httpObject to load in testpage.htm and time it.
function test_()
{
var xmlHttp = new XMLHttpRequest();
xmlHttp.onreadystatechange = function() {
if (xmlHttp.readyState == 4 && xmlHttp.status == 200)
{
content_div.innerHTML = xmlHttp.responseText;
alert(new Date().getTime() - start);
}
};
start = new Date().getTime();
xmlHttp.open("GET", test_page, true); // true for asynchronous
xmlHttp.send(null);
// 1039
}
// Main - run tests
test_();
</script>
</body>
</html>
load_home(); return false