Na mojej stronie mam funkcję jQuery, która pobiera dane z innego (zabezpieczonego) serwera zaraz po załadowaniu strony. Korzystanie z połączenia jsonp Obecnie załadować te dane po dokument gotowy imprezy:Sprawdź, czy jQuery jest załadowany, nie używając zdarzenia gotowego dokumentu
<script type="text/javascript">
$(document).ready(function() {
$.getJSON(_secureHost + '/base/members/current.aspx?callback=?', function (data) {
initPage(data);
});
});
</script>
Co mi się nie podoba w powyższej rozmowy, jest to, że można rzeczywiście jsonp exectued zanim dokument gotowy imprezy, a tym samym spowalnia ładowanie strony. Więc jeśli to jQuery wewnątrz strony (czyli nie przedstawieniu pomocą znacznika script), to poniższy kod działa świetnie i strona ładuje się szybciej:
<script type="text/javascript">
$.getJSON(_secureHost + '/base/members/current.aspx?callback=?', function (data) {
$(document).ready(function() {
initPage(data);
});
});
</script>
Ale w tym jQuery w każdej stronie jest 23k napowietrznych, które I” Chciałbym tego uniknąć. W jaki sposób mogę przetestować, czy jQuery zostało załadowane i czy tylko wywołuje funkcję initPage() po wczytaniu jquery?
Edycja: Aby być bardziej precyzyjnym, należy wielokrotnie sprawdzać, czy jquery jest załadowany, a następnie exectue zdarzenia. Zadaniem czasomierza może być rozwiązanie ..
Rozwiązanie: Stworzyłem preinit, który sprawdza jQuery. Ładowanie mojej strony nie może być szybsze :). Dziękuję wszystkim!
function preInit()
{
// wait until jquery is loeaded
if (!(typeof jQuery === 'function')) {
window.setTimeout(function() {
//console.log(count++);
preInit();
}, 10); // Try again every 10 ms..
return;
}
$.getJSON(_secureHost + '/base/members/current.aspx?callback=?',
function (data) {
$(document).ready(function() {
initPage(data);
});
});
}
ów prawie to. ale nie wiem, ile czasu zajmie załadowanie jquery. Musiałbym powtórzyć ten czek do momentu załadowania jquery. Mógłbym stworzyć czas, który sprawdza co 10 ms. Ale to nie jest dobre .. – AyKarsi
Ach, czy to masz na myśli? Myślałem, że chciałeś sprawdzić, czy jQuery był w ogóle załadowany. W takim przypadku jestem całkiem pewien, że jquery zakończyło ładowanie przed zamknięciem znacznika '
Dopóki umieszczasz znacznik skryptu, który zawiera jQuery powyżej tagu skryptu, który uruchamia twoją funkcję, powinien działać poprawnie.
Owijanie skrypt w ten zamiast funkcji gotowy może pomóc:
Źródło
2011-01-07 09:16:44 Olical
To jest tak samo jak $ (dokument) .ready (function() {}). Tylko skrócona wersja. –
Używam go do uruchamiania funkcji podczas ładowania dokumentu bez dołączonej jQuery. Nie wiedziałem, że jQuery zmienia funkcjonalność tego? – Olical
@Matt To byłoby '$ (function() {...}); :) @ Wolfy87 Jest to przyjemny sposób enkapsulacji kodu, ale niewiele się zmienia. Z drugiej strony uważam, że nasz plakat nie wymaga wielu zmian. –
można dodać albo załadować pełną funkcję lub siatki pełną funkcję jak pokazano poniżej, które pomogą Ci zrobić kilka operacji na jqGrid
Źródło
2011-01-07 09:21:37
hi myślę, że należy najpierw sprawdzić, czy jest jquery i sposób masz zamiar użyć jest zdefiniowana lub nie
Źródło
2011-01-07 09:26:20 Hafiz
są na pewno o tym ?! należy pamiętać, że nadal mogą mieć obrazy loading..etc
Chyba trzeba użyć:
Link
Źródło
2011-01-07 09:27:20 ifaour
Rzeczywiście chcę uruchomić jsonp tak wcześnie, jak to możliwe. dokument gotowy oznacza, dom jest gotowy do manipulacji. tak długo jak szanuję dokument gotowy zanim zacznę manipulować, jestem dobry. – AyKarsi
używałem footable plugin jQuery. Ten pracował dla mnie:
wersja jQuery - 1.9.1 wersja footable - 0,5
Źródło
2014-01-20 14:23:02