2012-05-01 4 views
1

У меня есть функция window.onload, которая загружает содержимое AJAX. Он срабатывает также, когда посетитель просматривает другую страницу и пытается ее перезагрузить (кстати, также называется AJAX). Функция window.onload выполняется снова.Есть ли способ сделать функцию window.onload выполнять только один раз?

Есть ли способ сделать функцию window.onload исполнением только один раз (путем хранения в кеше или что-то еще)?

+0

Использовать файлы cookie или сеансы? – j08691

ответ

3

Вы можете установить файл cookie при завершении работы AJAX, а затем проверить этот файл cookie при загрузке страницы. Некоторые псевдо-код:

$(function() { 
    if (!$.cookie("page-viewed")) { 
     // call ajax & display 

     $.cookie("page-viewed", true); 
    } 
}); 

Вот ссылка на jQuery cookie plugin


Update

на основе кода в свой комментарий, вы должны использовать куки плагин, как это:

$(window).load(function() { 
    if (!$.cookie("page-viewed")) { 
     $('#pages_holder').hide(0).delay(2500).fadeIn(1200, 'swing', {queue:false}); 
     $('#za').rotate3Di('+=360', 1000, {queue:false}, 'easeInOutCubic'); 
     $('.za').show().switchClass("za", "nas",500, 'easeOutQuad').switchClass("nas", "zavur6en", 1250, 'easeInOutCubic').delay(2000).hide(0) 
     $.ajax({ 
      url : 'pages/zanas.php', 
      success : function(response) { 
       $("#pages").html(response); 
      } 
     }); 
     $.cookie("page-viewed", true); 
    } 
}); 
+0

Я никогда не пользовался печеньем. Если это мой код, что мне нужно сделать: ' $ (window) .load (function() { $ (' # pages_holder '). Hide (0) .delay (2500) .fadeIn (1200, 'свинг', {очереди: ложь}.); \t $ ('# ZA') rotate3Di ('+ = 360', 1000, {очереди: ложь}, 'easeInOutCubic'); \t \t $ (». za '). show(). switchClass («za», «nas», 500, «easeOutQuad»). switchClass («nas», «zavur6en», 1250, «easeInOutCubic»). delay (2000) .hide (0) \t $ .ajax ({ URL: 'страницы/zanas.php', успех: функция (ответ) { $ ("#") страницы HTML (ответ); }.}); \t }); ' –

+0

Прошу прощения за беспорядок! –

+0

Я обновил свой ответ для вас. –

0
<script type="text/javascript"> 
    $(function() { 
     // Have your onload ajax here 
    }); 
</script> 

Я никогда не видел, чтобы это запускалось больше, чем раз на загрузку страницы.

+0

Но это все равно будет выполняться при каждой загрузке страницы? –

+0

Определить загрузку страницы? –

+0

Каждый раз, когда страница загружается ....? –

Смежные вопросы