Veriyi hızlı bir şekilde girince site çöküyor. (Videolu Anlatım) Yardımlarınızı bekliyorum. R10+ - R10.net
  • 12-09-2020, 18:07:09
    #2
    %70 - Hostingin güvenlik yazılımı engelliyor olabilir.
    %30 - Ajax ile sorgu yapılan sayfada kod yavaşlığı olabilir.
    "İnsan, zamanı durdurmak istediği yere aittir."
  • 12-09-2020, 18:16:19
    #3
    Anlık olarak sorgulamalardan dolayı bu işlemi yaşıyorsunuz hocam. Anlık sorgulatmak yerine kullanıcı sorgula butonuna tıkladığında ajaxı çalıştırmayı deneyin.

    O kısma yazdığınız karakter sayısı kadar sorgu calısıyor. Sanırım 9 adet php dosyasından ayrı ayrı uzantıları sorgulattırıyorsunuz.

    İşlem backend tarafında şöyle gerçekleşiyor anladığım kadarıyla;

    kullanıcı oraya bir harf yazdı düşünelim ( a yazdı ) totalde 9 php dosyanız çalışıyor. kullanıcı oraya hızlı bir şekilde 8 harfli bir şey yazdı varsayalım ( vindicta )

    php dosyalarınız ard arda 9 kez çalışacak. Önce v için, sonra vi, sonra vin, sonra vind... şeklinde her biri için arka planda sorgulama dönecek. Yani toplamda php dosyalarınız 72 kez çalışmış olacak ardı ardına. Buda arka planda 502,503,504 gibi 5xx hatalarına yol açacak.

    Sunucu işlem kapasitenizi ne kadar yükseltsenizde, api tarafı bu kadar hızlı işleme cevap vermeme durumunda oda çok bir işe yaramaz.

    Tavsiyem anlık işlem yerine kullanıcı tıklama eylemiyle işlem yaptırmanızdan yana.
    WordPress Özel Eklenti ve Çözüm bulamadığınız wp, php sorunlarınız için danışabilirsiniz.
  • 12-09-2020, 18:20:33
    #4
    Hocam hızını ben çok beğendim, birde aramaya yerine site adı yanına .com yazınca tüm aramalar gidiyor. Ona da bir çare bulursanız çok iyi olur. Elinize sağlık
  • 12-09-2020, 18:22:19
    #5
    Paylaşımlı sunucularda anlık bağlantı limiti bulunabiliyor. Sorgulama sırasında birkaç saniye içinde onlarca bağlantı açıldığı için bağlantılar kopuyor.

    Bunun önüne geçmek için JS ile kullanıcı yazmayı bıraktıktan 1 saniye sonra sorgulamayı başlatabilirsiniz veya anlık sorgulama şartsa sanal sunucuya geçebilirsiniz. Anlık bağlantılarda ajax sunucuya yük oluyor o nedenle bu işlem için websocket ihtiyacı doğuyor.

    Kodlama tarzında da hata var aslında. 9 ayrı PHP dosyası yazmak yerine 1 dosya yazıp bir farklı değerle uzantı değişikliği de yapabilirsiniz.
  • 12-09-2020, 18:24:25
    #6
    Vindicta adlı üyeden alıntı
    Anlık olarak sorgulamalardan dolayı bu işlemi yaşıyorsunuz hocam. Anlık sorgulatmak yerine kullanıcı sorgula butonuna tıkladığında ajaxı çalıştırmayı deneyin.

    O kısma yazdığınız karakter sayısı kadar sorgu calısıyor. Sanırım 9 adet php dosyasından ayrı ayrı uzantıları sorgulattırıyorsunuz.

    İşlem backend tarafında şöyle gerçekleşiyor anladığım kadarıyla;

    kullanıcı oraya bir harf yazdı düşünelim ( a yazdı ) totalde 9 php dosyanız çalışıyor. kullanıcı oraya hızlı bir şekilde 8 harfli bir şey yazdı varsayalım ( vindicta )

    php dosyalarınız ard arda 9 kez çalışacak. Önce v için, sonra vi, sonra vin, sonra vind... şeklinde her biri için arka planda sorgulama dönecek. Yani toplamda php dosyalarınız 72 kez çalışmış olacak ardı ardına. Buda arka planda 502,503,504 gibi 5xx hatalarına yol açacak.

    Sunucu işlem kapasitenizi ne kadar yükseltsenizde, api tarafı bu kadar hızlı işleme cevap vermeme durumunda oda çok bir işe yaramaz.

    Tavsiyem anlık işlem yerine kullanıcı tıklama eylemiyle işlem yaptırmanızdan yana.
    Öncelikle cevabınız için teşekkür ederim hocam. Yazdıklarınız çok mantıklı geldi. Peki kullanıcı yeni bir harf yazdığında önceki ajax isteklerini iptal ettirmenin bir yolu var mıdır?
    anindasorgu1.abort() şeklinde kullandım ama başarılı olamadım.

    Not: Jquery - ajax bilgim kısıtlıdır.


    drmed adlı üyeden alıntı
    Paylaşımlı sunucularda anlık bağlantı limiti bulunabiliyor. Sorgulama sırasında birkaç saniye içinde onlarca bağlantı açıldığı için bağlantılar kopuyor.

    Bunun önüne geçmek için JS ile kullanıcı yazmayı bıraktıktan 1 saniye sonra sorgulamayı başlatabilirsiniz veya anlık sorgulama şartsa sanal sunucuya geçebilirsiniz. Anlık bağlantılarda ajax sunucuya yük oluyor o nedenle bu işlem için websocket ihtiyacı doğuyor.

    Kodlama tarzında da hata var aslında. 9 ayrı PHP dosyası yazmak yerine 1 dosya yazıp bir farklı değerle uzantı değişikliği de yapabilirsiniz.
    Hocam aslında tek dosya şeklinde yapıyordum ancak o daha fazla sorunu beraberinde getirince böyle bir çözüm bulmuştum.
    Tek sayfada sorgu yapan sistem: https://goldenwhois.com/beta2/
    https://www.guzel.net.tr/aff.php?aff=1224​​​​
  • 12-09-2020, 18:39:59
    #7
    fcsosyal adlı üyeden alıntı
    Hocam hızını ben çok beğendim, birde aramaya yerine site adı yanına .com yazınca tüm aramalar gidiyor. Ona da bir çare bulursanız çok iyi olur. Elinize sağlık
    Beğenmenize sevindim hocam. Uzantı girince sorgu yeri şu şekil oluyor: r10.net.net ve sorun oluşuyor. Bundan dolayı uzantı girince alt tarafın kalkmasını sağladım.
    Şu problemide çözsem birkaç özellik sonrası sistemi yayına almayı düşünüyorum.
    https://www.guzel.net.tr/aff.php?aff=1224​​​​
  • 12-09-2020, 18:50:08
    #8
    ASametYildirim adlı üyeden alıntı
    Öncelikle cevabınız için teşekkür ederim hocam. Yazdıklarınız çok mantıklı geldi. Peki kullanıcı yeni bir harf yazdığında önceki ajax isteklerini iptal ettirmenin bir yolu var mıdır?
    anindasorgu1.abort() şeklinde kullandım ama başarılı olamadım.

    Not: Jquery - ajax bilgim kısıtlıdır.
    Rica ederim hocam, benimde genel olarak javascript bilgim copy paste derecesinde ne yazık ki.

    Mantıksal olarak yorumlayacak olursam;

    Buradaki cevabı baz alarak;

    var ajax_request = $.ajax({
    ...
    timeout: 1000,
    error: function(jqXHR, textStatus, errorThrown) {
    if(textStatus==="timeout") {
    //do something on timeout
    }
    }
    });
    
    ajax_request.fail(function(jqXHR, textStatus) {
    if(textStatus==="timeout") {
    anindasorgu1.abort();
    }
    });
    Şeklinde bir yapı kullanılabilir belki. Eğer kullanıcının yanıtına belirli sürede cevap gelmezse ajax isteği kapatılır. Ancak bunun işe yarayacağından emin değilim, sonuç olarak php tarafına istek yollanmış olacak.

    Üstte @drmed; arkadaşımızın yazdığı şekil daha doğru bir yol gibi. Kullanıcı yazmayı bıraktığı an sorgular çalışırsa yük azalacaktır. Ama bu seferde; anlık olarak 100 kullanıcının sorgulama yaptığını varsayalım. Her biri yavaş yavaş yazıp her saniye bir çok istekte bulunursa sunucu tarafında gene anlık bir kilitlenme yaşanacaktır. buton click event ile yapmanız bence çok daha sağlıklı olacaktır.

    Birde tekrar eden kod yapılarınızı for veya başka bir döngüyle yazmanızı tavsiye edebilirim.
    WordPress Özel Eklenti ve Çözüm bulamadığınız wp, php sorunlarınız için danışabilirsiniz.
  • 12-09-2020, 19:02:30
    #9
    ictaysi adlı üyeden alıntı
    %70 - Hostingin güvenlik yazılımı engelliyor olabilir.
    %30 - Ajax ile sorgu yapılan sayfada kod yavaşlığı olabilir.
    Vindicta adlı üyeden alıntı
    Anlık olarak sorgulamalardan dolayı bu işlemi yaşıyorsunuz hocam. Anlık sorgulatmak yerine kullanıcı sorgula butonuna tıkladığında ajaxı çalıştırmayı deneyin.

    O kısma yazdığınız karakter sayısı kadar sorgu calısıyor. Sanırım 9 adet php dosyasından ayrı ayrı uzantıları sorgulattırıyorsunuz.

    İşlem backend tarafında şöyle gerçekleşiyor anladığım kadarıyla;

    kullanıcı oraya bir harf yazdı düşünelim ( a yazdı ) totalde 9 php dosyanız çalışıyor. kullanıcı oraya hızlı bir şekilde 8 harfli bir şey yazdı varsayalım ( vindicta )

    php dosyalarınız ard arda 9 kez çalışacak. Önce v için, sonra vi, sonra vin, sonra vind... şeklinde her biri için arka planda sorgulama dönecek. Yani toplamda php dosyalarınız 72 kez çalışmış olacak ardı ardına. Buda arka planda 502,503,504 gibi 5xx hatalarına yol açacak.

    Sunucu işlem kapasitenizi ne kadar yükseltsenizde, api tarafı bu kadar hızlı işleme cevap vermeme durumunda oda çok bir işe yaramaz.

    Tavsiyem anlık işlem yerine kullanıcı tıklama eylemiyle işlem yaptırmanızdan yana.
    drmed adlı üyeden alıntı
    Paylaşımlı sunucularda anlık bağlantı limiti bulunabiliyor. Sorgulama sırasında birkaç saniye içinde onlarca bağlantı açıldığı için bağlantılar kopuyor.

    Bunun önüne geçmek için JS ile kullanıcı yazmayı bıraktıktan 1 saniye sonra sorgulamayı başlatabilirsiniz veya anlık sorgulama şartsa sanal sunucuya geçebilirsiniz. Anlık bağlantılarda ajax sunucuya yük oluyor o nedenle bu işlem için websocket ihtiyacı doğuyor.

    Kodlama tarzında da hata var aslında. 9 ayrı PHP dosyası yazmak yerine 1 dosya yazıp bir farklı değerle uzantı değişikliği de yapabilirsiniz.
    Hocalarım verdiğiniz öneriler doğrultusunda birkaç değişiklik yaptım. Galiba sorun çözüldü, rica etsem test edebilir misiniz?
    https://goldenwhois.com/beta3/
    https://www.guzel.net.tr/aff.php?aff=1224​​​​