나는 이것을 보았고 꽤 멋지게 보였으므로 테스트를 실시했다.
깔끔한 접근 방식처럼 보일 수 있지만 성능면에서 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