2011-06-19 6 views
20

Używam yepnope.js do dynamicznego ładowania plików javascript, i zauważyłem, że moje skrypty wydają się być ładowane dwa razy zgodnie z Firebug i Webkit Inspektor.Co powoduje, że moje skrypty są żądane dwa razy podczas używania Modernizr.load (yepnope.js)

Problem polega na tym, że w panelu sieci Firebug (najnowsza wersja przeglądarki Firefox 4) ich odpowiedzią jest 200, a nie 304. Wydaje się wolniejszy niż w Chrome.

Przesłałem this video pokazujący problem. Możesz zobaczyć, jak pliki są ładowane przez dodatkowy czas.

Kod używam w tym celu jest następujący, uproszczone:

Modernizr.load({ 
       load: ['jquery-1.6.1.min.js', 'libs.js'], 
       complete: function() { 
        console.log("loaded"); 
       } 
}); 

Modernizr.load() jest yepnope().

+0

Mam ten sam problem, +1 – HappyDeveloper

+0

@HappyDeveloper Spójrz na stronę yepnopejs - to też robi to samo. Być może tak to działa. Ale wydaje się pobierać dwa razy? –

Odpowiedz

25

Jest notatka na ten temat w swojej dokumentacji:

Od http://yepnopejs.com/

widzę dwa wnioski w moim dev narzędzia, dlaczego jest ładowanie wszystko dwukrotnie?

W zależności od przeglądarki i serwera może to oznaczać kilka różnych rzeczy. Ze względu na naturę , jak działa yepnope, dla każdego pliku wysyłane są dwa żądania: . Pierwsze żądanie to załadowanie zasobu do pamięci podręcznej, a drugie żądanie to w celu jego wykonania (ale ponieważ w pamięci podręcznej znajduje się , powinno natychmiast wykonać ). Dostrzeżenie dwóch żądań jest całkiem normalne, o ile drugie żądanie jest buforowane. Jeśli zauważysz, że drugie żądanie nie jest buforowane (i czasy ładowania skryptów podwajają się), , a następnie upewnij się, że wysyłasz prawidłowe nagłówki pamięci podręcznej , aby umożliwić buforowanie skryptów . Jest to niezbędne do yepnope. Nie będzie działać bez odpowiedniego buforowania. My rzeczywiście testy, aby upewnić się rzeczy nie są ładowane dwa razy w naszym apartamencie testowym, więc jeśli myślisz możemy mieć błąd w przeglądarce dotyczące podwójnego załadunku, zachęcamy do uruchomienia zestawu testów do sprawdzić, czy test podwójnego obciążenia mija.

+2

Uświadomiłem to sobie później, wybacz mojej niewiedzy i dziękuję za odpowiedź. –

+2

Nadal nie rozumiem, dlaczego musieli to zrobić w ten sposób. Założenie programu ładującego na Facebooku nie ma takiego problemu z dwukrotnym ładowaniem pliku. – Rihards

+0

Jaki jest najlepszy zamiennik "drop-in", jeśli 2 żądania w działaniu sieci są problemem? – AwokeKnowing

Powiązane problemy