2015-06-05 25 views
11

Chrome'un Dev Tools'ları, web sitelerini hata ayıklamak için harikadır, zira bu JavaScript ortamına "göz atabilirim" ve kesme noktaları belirleyebilirim. Konsol bile beklendiği gibi çalışır.Web İşleyicilerini Safari Web Denetçisi'nde Hata Ayıklama

Safari'de tamamen farklı bir hikaye. Web çalışanından console.log, konsolda bile yazdırmıyor. Yüklenen işçi komut dosyasını görüyorum ve üzerinde bir kırılma noktası koyuyorum, ama kırılmıyor. importScripts ile yüklenen komut dosyalarını bile göremiyorum.

Sorunları gidermek için Safari'nin Web Denetçisi'ni nasıl kullanabilirim?

Ben bu konularda düşünüyorum O değil, ama console.log yerine yılında

+1

bkz fazla bilgi için bu hat

var a = 50; a = a + 5; debugger; //--> execution is paused here a = a - 5; 

duraklayacağı otomatik açık? Safari'ye özgü bir sorunu araştırıyor musunuz? – Halcyon

+1

Şirketimin ürünü Safari'yi (ve tüm önemli tarayıcıları) destekliyor ve müşterilere, web tarayıcısına bakılmaksızın sorunları giderebilmeleri için mühendislere destek vermek istiyoruz. –

+2

Chrome, FireFox, Opera, IE, Kenar; Tümü konsoldaki web çalışanlarının mesajlarını gösterir. Safari? "Ha! Biz daha iyi biliyoruz, buna ihtiyacınız yok .." – muttonUp

cevap

-1

Safari 8. kullanıyorum, sen postMessage kullanabilirsiniz. postMessage, safari konsoluna hata ayıklama iletileri göndermenize izin vermelidir. Gerçi postMessage uğraşmak istemiyorsanız

// 
// In the Main thread 
// 
var worker = new Worker('/path/of/webworker/code.js') 
worker.onmessage = function (e) { 
    var result = JSON.parse(e.data); 
    if(result.type == 'debug') { 
    console.log(result.msg); 
    } else if(result.type == 'response') { 
    // ... use result.answer ... 
    } 
} 


// 
// In the WebWorker 
// 
function debug(msg) {               
    postMessage(JSON.stringify({type:'debug',msg:msg}));       
} 

onmessage = function (e) { 
    var inputData = e.data; 
    // work on input data 
    debug('Working OK'); 
    // work some more 
    // ... 
    postMessage(JSON.stringify({type:'response', answer:42})); 
}; 

David Flanagan bunun here için bir sarıcı yaptı:

Here

bunu nasıl büyük bir örnektir, aşağıda ana fikri yapıştırılan yani en az sizin kaynağında console.log

+1

'postMessage 'hakkında bilmiyorum ancak gerçekten kesme noktaları ayarlamak ve tamamen hata ayıklama deneyimi var. –

1

takın debugger; koduyla ayıklama yapmak için

Kullanımını izin vermelidir: bir kesme noktası ve ne zaman eklemek istediğiniz yerde ekleme geliştirici ko nsole yürütme Safari kullanıyorsanız gereken bir sebebi var mı Debugger Documentation on mozilla.org

+1

Gelecekte bağlantılarınız için açıklayıcı bir ad veya başlık verin. –

+0

@Daniel A. White, Merhaba, bu sizin için çalışıyor mu? Eğer evet bu yazıyı alabilir miyim? –

+0

Safari'de hiçbir şey yapmıyor (<= 9.1) – user3761308

İlgili konular