2016-03-29 13 views
0

jQuery ile Polymer 1.0 kullanıyorum ve küçük bir tek sayfa uygulaması oluşturduk. Bununla birlikte, "Yeni sekmede bağlantıyı açtığımda", sayfa yüklenmiyor. Daha spesifik olarak, şablon biçiminde yüklenir ve verileri almak için ajax isteklerini tetikler, ancak bu verilerin hiçbiri şablona sığmaz. Örneğin, basitleştirilmiş bir versiyonudur:Arka plan sekmesinde sayfa düzgün yüklenmiyor

$(document).ready(function(){ 
    url = '/ajax/get_data'; 
    $.post(url, '', function(data) { 
     if (data.data.id !== undefined & data.data.id > 0) { 
     $('.gt-info-location').text(data.data.name); 
     $('.gt-city-population').text(data.population); 
     $('.gt-city-timezone').text(data.data.timezone); 
     $('.gt-city-county').text(data.data.county); 
     $('google-map')[0].latitude = data.data.latitude; 
     $('google-map')[0].longitude = data.data.longitude; 
     $('#location-frontpage').css('background',"url('pictures/"+data.data.image_file+"') center/cover"); 
     $('#location-back').css('background',"url('pictures/"+data.data.image_file+"') center/cover"); 
     } 
    }); 
}); 

Ben $.post oluyor ve web isteği günlüğünden doğru verileri dönüyor biliyorum ama .text() veya .css() fonksiyonların hiçbiri sayfa üzerinde değişiklik yapıyoruz. Ve evet, aynı sayfayı açık bir sekmede yüklemek iyi çalışıyor.

cevap

0

Biraz hacky, ama aynı zamanda bunu bağlı ben odaklama penceresine .ready() üzerinde bu işlevi çalıştırmanın yanı sıra daha sonra loadDataAndPopulateToken() adında bir işlevin içine ben .ready() yaptığını etmişti şeyi koymak ve:

$(document).ready(function(){ 
    // initial token load (doesn't work if in background tab) 
    loadDataAndPopulateToken(); 

    // reload the token data whenever the page comes into focus 
    window.onfocus = loadDataAndPopulateToken; 
}); 

Bu yaklaşımın dezavantajı, sekmenin odaktan çıktığı ve daha sonra tekrar içine girdiği zaman tüm verileri yeniden yüklemesidir.