setTimeout(function()
{ refreshMessageList(); }, 5000);
Bu şekilde verilerimi her 5 saniyede bir kontrol ettirip güncelliyorum.
Direk ajax ile post ettikten sonra güncelleme yöntemi yok mu?
Jquery de verileri bu şekilde güncellemekten başka bir yol var mı ?
10
●296
- 24-02-2019, 02:12:09
- 24-02-2019, 03:23:05Merhabalar örnek olarak SignalR yapısını kullanabilirsin. Çalışma mantığı şu şekildedir. Program içindeki bir metodu sen takip edersin -ki bu durumda senin takip etmen gereken metod Mesaj Gönderme metodu olmalı- Bu metod tetiklendiğinde bunu dinlediğin tüm cihazlara bir uyarı gönderilir ve tüm cihazlarda bu veri yenilenmiş olur. Yani sürekli post isteği yollamak yerine SignalR metodun tetiklenip tetiklenmediğini takip etmiş oluyor.
- 24-02-2019, 13:45:02Global olarak ajax etkinliğini izleyebilirsin. Örneğin aşağıdaki kod ile site içerisinde herhangi bir ajax isteği başarılı olduğunda veya diğer etkinliklerde istediğin kod bloğunu çalıştırabilirsin.pratikadres adlı üyeden alıntı: mesajı görüntüle
/* .ajaxComplete() .ajaxError() .ajaxSend() .ajaxStart() .ajaxStop() .ajaxSuccess() */ $( document ).ajaxComplete(function( event, xhr, settings ) { if ( settings.url === "ajax/test.html" ) { refreshMessageList(); // burada gerekli kontrolleri sağlayabilirsin //xhr.responseText } }); - 24-02-2019, 14:52:36ajax işlemi bittiğinde başarılı oldugunda bu fonksiyonlardan birini mi çalıştıracağım success içerisindehrkn adlı üyeden alıntı: mesajı görüntüle
.ajaxComplete()
.ajaxError()
.ajaxSend()
.ajaxStart()
.ajaxStop()
.ajaxSuccess() - 24-02-2019, 14:55:44aşağıdaki kodu refreshMessageList fonksiyonunun hemen altına koyun yeterli.pratikadres adlı üyeden alıntı: mesajı görüntüle
$( document ).ajaxSuccess(function( event, xhr, settings ) { refreshMessageList(); }); - 24-02-2019, 14:59:11hrkn adlı üyeden alıntı: mesajı görüntüle
function getMessages() { $("form#message_form").submit(function(e) { e.preventDefault(); var formData = new FormData($(this)[0]); $("#msg_spin").addClass("fa-times fa-circle-o-notch fa-spin").show(); if( oneMoreTime == 1 ) { oneMoreTime = 0; $.ajax({ url: "func.php?cr=getMessages", type: "POST", data: formData, dataType: "json", cache: false, contentType: false, enctype: "multipart/form-data", processData: false, success: function (reply) { if (reply.error) { $("#msg_spin").removeClass("fa-times fa-circle-o-notch fa-spin").addClass("fa-times").show(); $(".g_messages").focus(); } else if (reply.success) { $("#msg_spin").removeClass("fa-times fa-circle-o-notch fa-spin").addClass("fa-check").show(); $(".g_messages").val("").ajaxComplete() } oneMoreTime = 1; } }); } }); return false; }zahmet olmaz ise şuradan örnek verebilirmisin
bu kod blogu ile verilerimi gönderiyorum
bu kod blogu ile de yenılıyorum
$(document).ready(function() { refreshOnline(); function refreshOnline() { var m_id = $("#mes_id").val(); $.ajax({ url:"forumHeadMessages.php?message_id="+m_id, method:"POST", data: {"type":"s_message"}, success:function(data) { $("#result_messages").html(data); setTimeout(function() { refreshOnline(); }, 750); } }); } }); - 24-02-2019, 15:06:05pratikadres adlı üyeden alıntı: mesajı görüntüle
$(function(){ $( document ).ajaxSuccess(function( event, xhr, settings ) { var m_id = $("#mes_id").val(); if(settings.url != "forumHeadMessages.php?message_id="+m_id){ // buraya refresh online mı artık neyi çalıştıracaksan bu alana yazmalısın } }); });