• 18-09-2012, 23:28:53
    #1
    Üyeliği durduruldu
    Merhabalar;
    veri.php adında, son yazıları listeleyen bir php dosyası oluştursam ve Veri.php 'i jQuery load ile çeksem, bunu da 5 - 10 sn aralıklarla tekrarlayıp kısır döngüye soksam, load() fonksiyonu veri.php 'in yenilenmesini sağlar mı yoksa her defasında document ready 'i mi çeker?

    Amacım:

    Şu an düzgün çalışan, aynı mantıkda olan fakat ajax kullanılan bir yöntem. Gayem post göndermekten kurtulmak ve eğer sağlıyorsa bunu .load() 'ın otomatik yapması.


    Teşekkürler.
  • 19-09-2012, 01:29:16
    #2
    wordpress fonksiyonlarının çalışması için wp-blog-header.php dosyasının veri.php dosyasına include edilmesi gerekli. daha sonra verileri json_encode ve decode ile json kullanarak dönüştürebilir ve ajax ile içeriği oluşturabilirsiniz. json kullanmak zorunda değilsiniz tabiki sadece verimlilik adına yazdım.

    include edilme işlemi:

        $paths = array(
            ".",
            "..",
            "../..",
            "../../..",
            "../../../..",
            "../../../../..",
            "../../../../../.."
        );
        
        foreach($paths as $path) 
        {
            if(@include( $path.'/wp-blog-header.php'))
            {
                break;
            }
        }
    Yardımcı olabilecek bir kaynak: http://www.eburhan.com/jquery-ve-json-islemleri/
  • 19-09-2012, 01:46:03
    #3
    Üyeliği durduruldu
    sermat adlı üyeden alıntı: mesajı görüntüle
    wordpress fonksiyonlarının çalışması için wp-blog-header.php dosyasının veri.php dosyasına include edilmesi gerekli. daha sonra verileri json_encode ve decode ile json kullanarak dönüştürebilir ve ajax ile içeriği oluşturabilirsiniz. json kullanmak zorunda değilsiniz tabiki sadece verimlilik adına yazdım.
    Çok teşekkür ederim ama ben anlatamadım sanırım

    Includelerimi zaten yaptım. Ve ben şu anda jSON değilde ajax ile zaten yukarıda yazdıklarımı yapıyorum. Fakat 5sn de bir jquery.post gönderip çektiğimden sitede uzun süre duran birisini düşünürsek sistemi yoracaktır.

    Bunu 5sn de bir load ile yapsam veri.php e eriştiğinde otomatik post eder mi? data falan gerekmiyor. Sadece veri.php POST edilsin yeter. Böylece yeni eklenen yazı olursa, hemen çeksin..

    Sanırım bu kez açıklayıcı oldu.
  • 19-09-2012, 11:36:07
    #4
    Vody adlı üyeden alıntı: mesajı görüntüle
    Çok teşekkür ederim ama ben anlatamadım sanırım

    Includelerimi zaten yaptım. Ve ben şu anda jSON değilde ajax ile zaten yukarıda yazdıklarımı yapıyorum. Fakat 5sn de bir jquery.post gönderip çektiğimden sitede uzun süre duran birisini düşünürsek sistemi yoracaktır.

    Bunu 5sn de bir load ile yapsam veri.php e eriştiğinde otomatik post eder mi? data falan gerekmiyor. Sadece veri.php POST edilsin yeter. Böylece yeni eklenen yazı olursa, hemen çeksin..

    Sanırım bu kez açıklayıcı oldu.

    onun yerine şöyle yapsan?

    $('#yazilardivi').load('http://siteadresi.com/index.php #yazilardivi');
    saniyeyi vs ayalarsın örnek olsun diye verdim.ben böyle kullanıyorum.sadece yazıların bulunduğu divi yenilersin
  • 19-09-2012, 13:41:21
    #5
    Üyeliği durduruldu
    cudjex adlı üyeden alıntı: mesajı görüntüle
    onun yerine şöyle yapsan?

    $('#yazilardivi').load('http://siteadresi.com/index.php #yazilardivi');
    saniyeyi vs ayalarsın örnek olsun diye verdim.ben böyle kullanıyorum.sadece yazıların bulunduğu divi yenilersin
    Evet mantıklı.. Olabilir ama her load ettiğinde yeni içerik çeker mi acep? En iyisi deneyim ona göre cevap veririm zaten..
  • 25-09-2012, 22:10:30
    #6
    Üyeliği durduruldu
    cudjex adlı üyeden alıntı: mesajı görüntüle
    onun yerine şöyle yapsan?

    $('#yazilardivi').load('http://siteadresi.com/index.php #yazilardivi');
    saniyeyi vs ayalarsın örnek olsun diye verdim.ben böyle kullanıyorum.sadece yazıların bulunduğu divi yenilersin
    Sonradan farkettim ama şunu atlıyoruz. Ben / biz amacımız ne? Post un bayt cinsinden değirini azaltmak. veri.php de sadece bir foreach dönüyor bunun da veri karşılığı 400bayt ama siteadresi.com/index.php e uygularsak tüm site 800kb belki 1mb tutacak. ayrı bir veri.php kullanmak çok daha faydalı.


    Gelelim diğer sorumun cevabına;

    ajax.Post ile .load() arasında hiç bir fark yok. Ajax method POST olarak veri çekiyor, load da method GET olarak veri çekiyor. Her ikisininde boyutu aynı: 400Bayt

    İkisi arasında ikileme düşen olursa, ajax.post daha yararlı çünkü veri.php 'in işlemesi için parametreler de yollayabiliyoruz. aynı boyutta veri indirerek tabi.
  • 26-09-2012, 12:09:40
    #7
    <script>
    function yenile(){
        $('#alanid').load('veri.php');
    }
    setInterval("yenile()", 10000);
    //10 saniyede bir yenile fonksiyonunu çalıştırır
    </script>
    yalnız şöyle birşey de var. load veya ajax post/get de ile de yapsanız veri.php yi sadece siteadresi.com/veri.php değilde direkt veri.php olarak yazmanız daha iyidir nedeni ise load ve ajax post/get in crossdomain de çalışmamasıdır. yani şöyleki siteniniz normal adresi www lidir ama siz load içine www siz şeklini yazarsanız çalışmaz crossdomain korumasına takılır