SORU
4 Ocak 2011, Salı


JSON daha hızlı ayrıştırma XML ayrıştırma

Şirketimin sunucu tarafı çerçeve ile çalışmak için gelişmiş bir JavaScript Kütüphanesi yaratıyorum.

Sunucu taraflı çerçeve basit bir XML biçiminde veri kodlar. Süslü namespacing ya da böyle bir şey yok.

İdeal JSON olarak tarayıcıda tüm verileri ayrıştırmak istiyorum. Eğer bunu yaparsam ancak, sunucu tarafı kodu da JSON tükürüp yeniden yazmak istiyorum. Bu kolay değiştiremem ortak API var çünkü acı vericidir.

Gerçekten burada beni endişelendiren şey JSON karşı XML ayrıştırma tarayıcı performansı. Gerçekten büyük bir fark endişe var mı? Ya da sadece JSON için gitmeli miyim? Kimse herhangi bir deneyimi veya ikisi arasında performans farkı testleri var mı?

En modern web geliştiriciler muhtemelen JSON tercih etmeli ve neden öyle olduğunu görüyorum, bunun farkındayım. Ancak, ben gerçekten sadece performans ilgileniyorum. Eğer kanıtlanmış büyük bir fark sonra ise orada müşteri için üreten JSON ekstra çaba sunucu tarafında geçirmek için hazırım.

CEVAP
4 Ocak 2011, Salı


JSON olduğu için daha hızlı olması gerekirJSOlabilir, yani nesne Gösterimi, JavaScript tarafından yerel olarak tanıdı. Şeylerin yanına üzerinde PHP, çoğu kez böyle bir şey yapacağım:

<script type="text/javascript">
    var data = <?php json_encode($data)?>;
</script>

Bu konuda daha fazla bilgi için, buraya bakın:

Why is Everyone Choosing JSON Over XML for jQuery?

"Ekstra çaba" gerçekten içine sokmak zorunda mıydın "" JSON? üretme ne de... Kesinlikle el ile JSON dize bina olacağını söylüyor olamazsın? Sunucu tarafında hemen hemen her modern dil JSON dizeleri içine yerel değişkenleri dönüştürmek kütüphaneler var. Örneğin, PHP json_encode temel işlevi aşağıdaki gibi ilişkilendirilebilir bir dizi dönüştürür:

$data = array('test'=>'val', 'foo'=>'bar');

içine

{"test": "val", "foo": "bar"}

Sadece bir JavaScript nesne JS ilişkilendirilebilir diziler (doğrusu) var hayır (beri).

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 8bitdigitaltv

    8bitdigitalt

    31 AĞUSTOS 2011
  • kremosakhaz

    kremosakhaz

    25 AĞUSTOS 2006
  • michellefeng's channel

    michellefeng

    26 Kasım 2006