Bir sayfanın kaynak kodundan bir json nesneyi gizlemek nasıl?

3 Cevap php

iam benim php dosyasında json nesnesini kullanarak ama benim sayfa boyutu çok artar olarak benim json nesne kaynak kodu görüntülenir istemiyorum.

Bu ne im php yapıyor

$json = new Services_JSON();
$arr = array();
$qs=mysql_query("my own query");
while($obj = mysql_fetch_object($qs))
{
    $arr[] = $obj;
}
$total=sizeof($arr);
$jsn_obj='{"abc":'.$json->encode($arr).',"totalrow":"'.$total.'"}';

ve bu javascript

echo '<script language=\'javascript\'>
var dataref = new Object();
dataref = eval('.$jsn_obj.');
</script>';

ama ben bunu nasıl yapabilirim, benim kaynağından değer nesneleri jsn_obj bu $ gizlemek istiyor?? plz yardım!

3 Cevap

Ben (gerçekten, değil) hiç bir sorun olup olmadığı konusunda fikrini değiştirmek için başka, senin soruna bir yolu var emin değilim.

Eğer çıkış yapmazsanız sayfanızda JSON nesnesi kullanamazsınız. Nesneyi almak için diğer tek yolu bunun için ayrı bir AJAX isteği yapmak olacaktır. Eğer bu şekilde olsaydı, yine larger o olurdu olacak olması daha ekstra bir HTTP isteği (ve exact same number of bytes that you would have originally, but now you've added yükü transfer ediyoruz başlangıçta, HTTP başlıkları) transferi şimdi vardır beri. Eğer then AJAX isteği göndermek ve sonuç çalıştırın, sayfayı yüklemek olurdu çünkü bu yolu da, sizin sayfa yük yavaş olacaktır.

Sayfalarınızın boyutunu yönetmek için daha iyi yollar var. JSON sadece metin, böylece bir server-side solution to zip your content, like mod_deflate içine bakmak gerekir. mod_deflate dinamik PHP çıkışı yanı sıra statik sayfalarda güzel çalışıyor. Eğer web sunucusu üzerinde kontrol yoksa, PHP en built in zlib compression kullanabilirsiniz.

Bunun yerine, doğrudan belgeye JSON tarih yazma yerine bir XMLHttpRequest kullanabilir veya komut dosyası çalışma zamanı sırasında JSON veri yüklemek için JQuery gibi bir kütüphane kullanabilirsiniz.

Bu json veri büyük ölçüde bağlıdır. Eğer html satır içi baskı konum veri büyük ise, ister json veri yüklemek için ajax kullanarak düşünebilirsiniz. Bu bile veri olmadan, size sayfa daha hızlı yüklenecek istedim üstleniyor.

Veriler bu büyük değilse, ekstra http isteklerini yapmadan, veri inline tutmaya çalışın. Sayfanızı hızlandırmak için, YSlow kullanmayı deneyin! Eğer optimize olabilir başka hangi alanlarda görmek için.