2012-02-28 22 views
10

Bir sayfanın jQuery'de ilk kez yüklendiğini algılamam gerekiyor, böylece sayfa yalnızca kullanıcının o sayfaya ilk gittiğinde yüklediğinde bazı eylemleri gerçekleştirebiliyorum. Sunucu tarafı koduna benzer page.ispostbasck. $ (Document) test ettim. Zaten ve sayfa her yüklendiğinde patlar, böylece ihtiyacım olanı sağlamaz. JQuery Load işlevini de denedim - ayrıca her sayfa yükünü de tetikliyor. Yani bir sayfa yükleme bir örnek ben yazı tipi sayfasında bir HTML giriş etiketi var ve bir geri gönderme (asp.net gibi) ama bu sayfa yeniden yükler ve $ (document) .readyJQuery ile ilk sayfa yüklemesini algıla?

ateşler

Teşekkürler

+2

kullanmaktır. –

cevap

6

Yalnızca sayfa ilk kez yüklendiğinde yangın yapan bir olay mevcut değil.

jQuery's .ready() event kullanmalı ve ardından tercih ettiğiniz yöntemi (ör. Tanımlama bilgisi, oturum değişkeni, yerel depolama, vb.) Kullanarak ilk kez bir sayfa yükü işlemiş olduğunuzdan emin olun.

Not: Bu yöntem, kullanıcı bilgilerini bir DB'de depolayamazsanız, hiçbir zaman bu kadar aptal olmayacaktır. Aksi takdirde, kullanıcı çerezlerini temizlediğinde veya seçtiğiniz yöntemi seçtiğinde, "ilk kez yüklenen" kodu tekrar tetiklenir.

+4

O ne dedi. Jquery (ve genel olarak javascript), sayfa yükleri arasında kalıcı bir sebebe sahip değildir. –

16

İlk yük bilgilerini depolamak için çerez kullanmak zorunda olacak:

if (! $.cookie("cookieName")){ 
    // do your stuff 

    // set cookie now 
    $.cookie("cookieName", "firstSet", {"expires" : 7}) 
} 

Not: örnek jQuery Cookie plugin kullanır üstünde.

6

Bu soruna yeni girdim ve işte bu şekilde hallettim. Sayfa yüklendiğinde değişken initialLoad kullanarak ilk kez takip edin:

var initialLoad = true; 

$(document).ready(function() { 
    ... 
    ... 
    ... 

    initialLoad = false; 

}); 

Sonra diğer fonksiyonlarda, bunu yapabilirsiniz:

if (initialLoad) { 
    //Do work that is done when the page was first refreshed/loaded. 
} else { 
    //Do work when it's not the initial load. 
} 

Bu benim için iyi çalışır. Kullanıcı zaten sayfada ve bazı jQuery işlevleri çalışıyorsa, şimdi bu kullanıcının sayfayı yeni yüklediğini veya sayfada zaten olup olmadığını biliyorum.

+0

"$ (document) test ettim. Zaten ve sayfa her yüklendiğinde patlar, böylece ihtiyacım olanı sağlamaz." - açıkça istediği şey değil – ghosh

-2

kolay çözüm Çerezleri ahbap kullanmak gerekecektir jQuery ‘Bir kez’ plugin

$(element).once('class-name', function() { 
    // your javascript code 
});