मैंने इसे देखा और सोचा कि यह बहुत अच्छा लग रहा है इसलिए मैंने इस पर कुछ परीक्षण किए।
यह एक साफ दृष्टिकोण की तरह लग सकता है, लेकिन प्रदर्शन के मामले में यह एक समय में jQuery लोड फ़ंक्शन के साथ एक पेज लोड करने या XMLHttpRequest के वेनिला जावास्क्रिप्ट दृष्टिकोण का उपयोग करने की तुलना में 50% से पिछड़ रहा है जो लगभग एक दूसरे के समान है।
मैं इसकी कल्पना करता हूं क्योंकि हुड के तहत इसे ठीक उसी अंदाज में पेज मिलता है, लेकिन इसके साथ-साथ एक पूरी नई HTMLElement वस्तु का निर्माण भी करना पड़ता है।
सारांश में मैं jQuery का उपयोग करने का सुझाव देता हूं। सिंटैक्स का उपयोग करना जितना आसान हो सकता है, यह आपके लिए उपयोग करने के लिए एक अच्छी तरह से संरचित कॉल है। यह अपेक्षाकृत तेज भी है। वेनिला दृष्टिकोण एक गैर-ध्यान देने योग्य कुछ मिलीसेकंड से तेज हो सकता है, लेकिन वाक्यविन्यास भ्रमित है। मैं इसका उपयोग केवल ऐसे वातावरण में करूँगा जहाँ मुझे jQuery की सुविधा नहीं है।
यहां वह कोड है जिसका मैंने परीक्षण किया था - यह काफी अल्पविकसित है, लेकिन समय कई प्रयासों में बहुत सुसंगत है इसलिए मैं प्रत्येक मामले में लगभग + 5ms तक सटीक कहूंगा। Chrome में मेरे अपने होम सर्वर से टेस्ट चलाए गए:
<!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