페이지로드 시간에 대해 너무 많이 걱정하지 마십시오 작동하지 않는 것 같아요 약간 녹슨입니다.
사람이 사이트를 사용할 수있는 시간을 측정하는 것이 아니라 다운로드가 중단되는 데 걸리는 시간을 측정 한 것입니다.
이 일 때 pageload가 페이지를 사용하거나 페이지를 보는 기능을 차단하는 경우가 있습니다. 예를 들어, CSS를로드하기 전에 페이지 상단에 모든 JS를로드하면 예.
는 개인적으로, 나는 당신의 형식 미세 틱이라고 생각하지만 id
-assignment을 많이하고있는, 그리고 jQuery를 듣고처럼 그 모습 에 의해 손 끔찍한, 끔찍한 일이.
왜 html5 data-set
속성을 사용합니까?
<a data-linkType="JS-Override" data-methodName="doSomethingInternally">link</a>
프로그램에서 dataset
으로 전화 할 수 있습니다.
var anchors = document.getElementsByTagName("a");
[].forEach.call(anchors, function(anchor) {
if (anchor.dataset.linkType !== "JS-Override") { return; }
var extension = anchor.dataset.methodName;
anchor.addEventListener("...", function() { setHash(extension); }, false);
});
매우 간단한 예이지만 작동합니다. 데이터 세트에 대한 지원이 현재 양호합니다. 이전 IE를 포함한 모든 브라우저에서 작동하려면 간단한 API로 래핑해야합니다 (새로운 브라우저는 데이터 세트에서 읽음, 예전 브라우저는 "data-XXX"속성에 대한 속성 목록을 읽어야 함). jQuery는이를 감싸고 있습니다 에 .data();
그리고 물론, 당신은 당신의 페이지에 많은 앵커를 가지고 있을지도 모릅니다. 그리고 그들 중 소수만이 당신이 지금 찾고있는 것을 할 것입니다 ... ... 그래서 트릭 당신이 내부 특별한되는 각 a
것을 알고 있다면, 대안이. 당신이 페이지에있는 모든 a
으로 분류되지 않도록 당신이 그들을주는 클래스를 잡아
수 ... 또는 것 페이지, 메뉴 div 또는 설정 div 또는 무엇이든 포함 된 다음 t를 잡아 라. 호스 제품 :
var menu = document.getElementById("myMenu"),
jsLinks = menu.getElementsByTagName("a");
[].forEach.call(jsLinks, function (anchor) { /* everything mentioned before */ });
이 접근 방식에 대한 우려 사항은 무엇입니까? – Whymarrh
링크가 많은 페이지는 참으로 지루합니다. 또한 이것이 페이지로드 속도에 상당한 영향을 미치는지 전혀 알 수 없습니다. –
페이지가 이미로드 된 후에 JavaScript가 실행되면 문제가 없어야합니다. – Whymarrh