1

JQuery에 익숙하지만 백그라운드에서 html 페이지를 미리 가져 오는 데 사용하고 싶습니다 (각각 약 4kb @ 약 4kb).하지만이 작업을 제대로 수행하고 있는지 잘 모르겠습니다. 나는 브라우저 인 경우 삽입되는 문서 위의 코드의 머리에 'REL = 프리 페치'일부 링크가 기본적으로Jquery selector 유효 기간/범위

$(document).ready(function() { 
    var my_url; 
    $('[rel=prefetch][href$=.html]') 
     .each(function() { 
      my_url = $(this).attr('href') 
      $.ajax({ 
       url: my_url, 
       dataType: 'text', 
       headers:{'X-Moz': 'prefetch'} 
      }); 
     }); 
}); 

: 여기

내가 함께 온 코드입니다 Firefox가 아닙니다. 내 응용 프로그램은 'X-Moz : prefetch'헤더가 감지 될 때 상황이 다르게 렌더링되므로 필요에 따라 여기로 전송됩니다.

코드는 'dataType : text'가 처리해야하는 스크립트를 처리하지 않고 html과 캐시를 가져와야합니다.

이 제안과 제안에 대해 감사드립니다. 검색어 :

  1. 위의 코드가 유효합니까? 수정 사항이 아니라면 무엇입니까?
  2. 선택기의 범위를 < 헤드> ... </head> 섹션으로 제한하려면 어떻게 변경해야합니까?

답변

0

제대로 작동합니다. 문제는 jQuery 스 니펫이 google API를 사용하여 JQuery에 링크되었을 때 실행되지 않았기 때문입니다. 내 사이트에서 직접 서비스를 제공하는 경우 모든 j가 하나의 파일로 결합되어 작동합니다.

Safari에서 개발자 도구를 사용했을 때 알게되었습니다.

전체 코드는 다음과 같습니다

(function ($) { 
    $(document).ready(function() { 
      var this_browser, my_url; 
      // Prefetch pages for non Firefox browsers 
      this_browser = new Browser(); 

      if (this_browser.getBrowserName() != this_browser.BROWSER_FIREFOX) { 
       // Asynchronously prefetch html as text strings 
       // I.E., do not process scripts in incoming html 
       // See: http://ernstdehaan.blogspot.com/2009/08/prefetching-files-using-jquery.html 
       $('link[rel="prefetch"][href$=".html"]') 
        .each(function() { 
         my_url = $(this).attr('href'); 
         $.ajax({ 
          url: my_url, 
          dataType: 'text', 
          headers: {'X-Moz': 'prefetch'} 
         }); 
        }); 
      } 
    }); 
}(jQuery)); 

사파리는 "(jQuery를)"비트 오류가 발생 된 것을 저에게 경고.

JQuery가로드되기 전에 코드가 실행 되었기 때문입니다.

또한

$('head link[rel="prefetch"][href$=".html"]') 

이 선택을 제한한다는 얘기를 깜빡 했네요.

또한 브라우저 검색을 제거하고 모든 브라우저에서이 기능을 사용합니다.

0
 
$(document).ready(function() { 
    $('[rel=prefetch][href$=.html]') 
     .each(function() { 
      var my_url = $(this).attr('href') 
      $.ajax({ 
       url: my_url, 
       dataType: 'text', 
       headers:{'X-Moz': 'prefetch'} 
      }); 
     }); 
}); 

+0

확실치 않은 점은 루프의 각 패스 중에 my_url 변수를 재정의하는 것입니다. 범위를 머리에 제한하는 것에 대한 제안? – Dayo

+0

"my_url"변수가 이전에 잘못된 위치에 선언 된 것으로 나타났습니다. 이제 실제 위치를 보여주기 위해이를 수정했습니다. 명확하게하기 위해 일부 요소를 다듬어야했기 때문에 이전에 잘못된 위치에 표시되었습니다. – Dayo