Можно также прочитать « Язык программирования C » от K & amp; R, потому что это быстрое чтение, и оно даст вам представление, которое может помочь понять производительность, происходящую за кулисами в мусоре. язык коллекции.
Оказывается, из-за своеобразной смеси фреймворков javascript мне потребовалось инициировать скрипт с использованием прослушивателя событий, предоставляемого одной из других фреймворков.
You can have $(document).ready()
multiple times in a page. The code gets run in the sequence in which it appears.
You can use the $(window).load()
event for your code since this happens after the page is fully loaded and all the code in the various $(document).ready()
handlers have finished running.
$(window).load(function(){
//your code here
});
Пробовали ли вы загрузить все функции инициализации с помощью $ (). Ready
, выполнив функцию jQuery, которую вы хотели последней?
Возможно, вы можете использовать setTimeout ()
для функции $ (). ready
, которую вы хотели запустить, вызывая функциональность, которую вы хотели загрузить.
Или используйте setInterval ()
и проверка интервала, чтобы увидеть, все ли другие функции загрузки завершены (сохранить статус в логической переменной). При соблюдении условий вы можете отменить интервал и запустить функцию загрузки.
Из здесь :
// Add jQuery
var GM_JQ = document.createElement('script');
GM_JQ.src = 'http://jquery.com/src/jquery-latest.js';
GM_JQ.type = 'text/javascript';
document.getElementsByTagName('head')[0].appendChild(GM_JQ);
// Check if jQuery's loaded
function GM_wait()
{
if(typeof unsafeWindow.jQuery == 'undefined')
{
window.setTimeout(GM_wait,100);
}
else
{
$ = unsafeWindow.jQuery;
letsJQuery();
}
}
GM_wait();
// All your GM code must be inside this function
function letsJQuery()
{
// Do your jQuery stuff in here
}
Это будет ждать, пока jQuery загрузится, чтобы использовать его, но вы можете использовать та же концепция, установка переменных в других ваших скриптах (или проверка их, если они не ваш скрипт), чтобы дождаться их загрузки, чтобы использовать их.
Например, на моем сайте я использую это для асинхронной загрузки JS и ждать, пока они закончат, прежде чем что-либо делать с ними с помощью jQuery:
<script type="text/javascript" language="JavaScript">
function js(url){
s = document.createElement("script");
s.type = "text/javascript";
s.src = url;
document.getElementsByTagName("head")[0].appendChild(s);
}
js("/js/jquery-ui.js");
js("/js/jrails.js");
js("/js/jquery.jgrowl-min.js");
js("/js/jquery.scrollTo-min.js");
js("/js/jquery.corner-min.js");
js("/js/jquery.cookie-min.js");
js("/js/application-min.js");
function JS_wait() {
if (typeof $.cookie == 'undefined' || // set in jquery.cookie-min.js
typeof getLastViewedAnchor == 'undefined' || // set in application-min.js
typeof getLastViewedArchive == 'undefined' || // set in application-min.js
typeof getAntiSpamValue == 'undefined') // set in application-min.js
{
window.setTimeout(JS_wait, 100);
}
else
{
JS_ready();
}
}
function JS_ready() {
// snipped
};
$(document).ready(JS_wait);
</script>