Dinamik JavaScript slayt

2 Cevap php

Daha sonra önceden yükler MySQL veritabanı üzerinden görüntüleri ve onları HTML belgesinde bir görüntü etiketi bir anda görüntüleyen bir JavaScript slayt gösterisi var. Kısaca, pek çok slayt öğreticiler web üzerinde göstermek gibi ön yükleme görüntüleri gerçekleştirir, ancak bunun yerine statik görüntüleri (yani images/image1.jpg vb) kullanarak PHP (yani getData.php? N yoluyla sağlanan dinamik bir görüntü kullanır = 1) getData.php komut dosyası sunucu üzerinde çalışan ve önceden her görüntü için veritabanına yeni bir bağlantı açar.

Veritabanına kadar çok bağlantı yapmadan ve her bağlantı SINIRI n, 1 ile görüntü veritabanı üzerinde tek bir sorgu yapmak zorunda kalmamak için yine de var mı?

Ben image.src olarak getData.php kullanmak için gidiyorum eğer getData.php bir seferde tek bir görüntü dönmek gerekiyor gibi görünüyor! Gerçekten 10 blokları onları alıp ve sonra () istemci tarafında tek tek nesneleri Image onları atamak istiyorum. Ben (tabii tarayıcının dışında) resimleri görüntülemek için Python bir istemci uygulaması yazdığında 10 ya da öylesine bloklar çok daha hızlı transfer (ve mySQL sunucusu üzerindeki yükü azaltır), çünkü bu daha hızlı olacağını düşünüyorum. Ben JavaScript ve PHP ile gerçekleştirebilirsiniz? Ben arasına XML kullanıyor musunuz? AJAX ile JavaScript içine ikili görüntü verilerini almak olsaydı ben onunla her şeyi yapabilirdi? Kaçırdığım JavaScript bir imagecreatefromstring() işlevi var mı?

Ben kendi başıma tam kodunu anlamaya, ama ben web programlama için yeni ve bu sorunu çözmek için nasıl bir ipucu gerekiyor! Ben büyük çerçevesinin bazı parça eksik düşünüyorum. Ben ActionScript veya bu sorun için JavaScript başka bir şey gerekir mi? Önceden bahşiş için teşekkürler!

EDIT: Ben bu ilk öneri gibi ve ben bu halletmek düşünüyorum. Ayrıca LİMİT n, 1 sorguları (olsa SQL BLOB alanları tutmak istiyorum) Ama JavaScript nasıl () nesne bir görüntü içine XML ikili veri sopa yok önlemek için alex Şişkin'in öneri bölümünü izleyin beni çok sağlayacak?

2 Cevap

Diyorum ki:

  • GetData.php sonraki 10 görüntüleri içeren bir XML dosyası oluşturmak var.
  • GetData.php bir AJAX isteği XML yanıt almak için javascript var.
  • XML yanıt tek tek görüntüleri çapraz ve dokuzuncu görüntüleri görüntülerin sonraki set için sorgu getData.php görüntülendiğinde.

Bir çerçeve gelince: Benim tavsiyem AJAX isteği ve görüntü ekran ve önyüklemeden hem JQuery kullanmaktır.


XML aracılığıyla ikili verileri aktarmak için base64 gibi bir ikili-metin kodlamasını kullanabilirsiniz. Tarayıcıların çoğunda kendisi tarafından base64 decode kullanabilir ve böylece gibi bir görüntü nesnesine pass:

<img src="data:image/jpeg;base64,your binary data comes here">

Bu, Internet Explorer'ın ama tüm çalışacak, sen :) IE için geri PHP modülüne base64 veri geçmek Dean Edwards tarafından bir neat trick kullanabilirsiniz

Basit bir görüntü için JQuery ve PHP Kullanımı (hayır slayt ... bu sadece benim test kodu oldu) kod şöyle:

PHP:

<?php
   echo base64_encode(file_get_contents("image.jpg"));
?>

JS / jQuery:

$(document).ready( function() {
   $.get( "image.php", function( data ) {
      $(document).append("<img src=\"data:image/jpeg;base64,"+ data +"\">");
   });
});

Çok kötü çözümleri - ikili görüntülerini ve "sınır N, 1" kullanma.

Why your images didn't stored in database as links to the images? And images must stored on the file system. Queries like "Limit n, 1" really very slow, particularly on big tables. You need use small queries with big offset instead many queries with small offset and pack data in php to json format for the sending into the javascript. (limit 100 for example) Sending of the ajax request for the one images its very prodigally.

Güzel slayt gösterisi burada bulabilirsiniz - plugins.jquery.com.