2011-08-13 15 views
10

Bir web sitesinin AJAX kullanarak içeriğini nasıl yeniden yüklediğini öğrenmek istiyorum. Bu nedenle, JS işlevlerinin gerçek zamanlı olarak çağrıldığını görmek istiyorum, çünkü sayfayı dinamik olarak yeniden yüklemek için hangi işlevin sorumlu olduğunu anlayamıyorum. FF, Chrome, Opera veya IE'de tüm yürütülen işlevleri JS gerçek zamanlı olarak nasıl görebilirim?Gerçek zamanlı olarak adlandırılan tüm JavaScript işlevlerini nasıl görebilirim?

+1

JavaScript DeObfuscator kullanarak? Kırılma noktası özelliklerinin farkında mısınız? – Zasz

+2

Firebug'ım var. Kırılma noktası koyamıyorum çünkü ne işlevi olduğunu bilmiyorum. Sorumu reddettin mi? Lütfen yap. Kırılma noktasının bir işleve sokulmaması için hangi işlevlerin çağrıldığını görmek için bir şeye ihtiyacım var. –

+0

Bu sayfa jQuery'ye sahipse, görmek için [bu yanıt] bölümüne bakın (http://stackoverflow.com/questions/743876/list-all-javascript-events-wired-up-on-a-page-using-jquery) Hangi işlevler bir ajax çağrısına neden olan elemnet'e bağlanır, daha sonra, kesme noktalarını ve iz işlevini izlemek için kullanabilirsiniz. – Zasz

cevap

11

Firebug konsolu sekmesindeki 'profil' düğmesini kullanmak size, işten çıkarılan işlev (ler) in bir göstergesi verebilir. Ayrıca, firebug konsoluna xmlhttp isteklerini göstermesi (fir konsolunun ekranının üst kısmındaki 'konsol'u genişlet' komutunu verebilirsiniz. Bundan sonra, bir ajax isteği tetiklenirse konsolda görünür olmalıdır. . Eğer parametreler bakarak isteği tetikleme işlevi anlaması mümkün olabilir

+0

Sadece IE'de bir sorunu ayıklamaya çalışıyorum sonsuz bir çeşit sonsuz loop, ama Firefox'u kullanmak için bir yöntem listesi almak zorunda kalırsam en azından nerede bu kadar havalı görüneceğimi bilmeliyim. ancak profil düğmesini kullanıp sayfayı yüklediğimde, yeni sayfa yüklendiğinde profilleme sıfırlanır. Peki, sayfa ilk yüklendiğinde neyin çalıştırıldığını nasıl yakalayabiliriz? – stephenbayer

1

Fireworks'ü FF'ye takın. Bu bağlantıyı ziyaret edin: http://getfirebug.com/

+0

Aylarca Firebug yüklü. Onu orada bulamıyorum. Belki onu bulabilirsin? –

+0

@tomaszs profiler için arıyorsunuz. Bunu çalıştırın, tüm fonksiyonları izler – Raynos

0

ben büyük bir arama yapmak ve ("function (.*)\((.*)\){" gibi bir şey) düzenli işlev adlarını maçları ifadesini kullanan tüm dosya üzerinde yerini alacak ve başında console.log(functionName) fonksiyonunu eklemek için kullanabilirsiniz.

için arama yapın ve function \1 (\2){ console.log("\1"); ile değiştirin (Not: Düzenlemediğim için düzenli ifadeler büyük olasılıkla yanlıştır - doğru olması için bazı sınava gerek duyarsınız).

Biraz çılgın görünüyor ama işe yaramalı. Bir yönetmen Lingo projesinde hata ayıklamak için bu yöntemi kullandım.

Açıkçası, değiştirmeden önce tüm projeyi yedeklediğinizden emin olun.

+0

Proje dosyalarına erişiminiz varsa güzel bir fikir. Ya sen yapmazsan? –

+0

Neden bir kullanıcı kod erişimi olmayan bir site hata ayıklamak istiyorum? –

+0

Üzgünüm, yanlış yazmış: site dosyalarına kolay erişimim yok (html, css, js'yi biliyorsunuz) –

3

Ben ne istiyorum Chrome'da bir özellik olduğunu düşünüyorum:

yeniden ediliyor elemanı bulup üzerinde sağ tıklayıp, incelemek seçim Bağlam menüsünden, ve ardından sağdaki html öğesinin (alt firebugish panelinde), içerik menüsünden sağ tıklatması için seçenekler vardır:

alt ağaç üzerinde
  • mola belki yapacağını gövde etiketinin üzerinde "alt ağaç değişiklikler üzerinde kırmak" set sizin durumunuzda düğüm çıkarılması

üzerinde nitelikler değişiklikler üzerinde

  • mola
  • mola modifikasyonlarına? chrome harika yeni dev özellikleri

    Madde: http://www.elijahmanor.com/2011/08/7-chrome-tips-developers-designers-may.html

  • İlgili konular