簡體   English   中英

如何在不使用大量JS的情況下使用AJAX更新一個屬性?

[英]How do I update one attribute using AJAX without having to use any heavy JS?

我有一個屬性weight.subtotal ,我想在其更改時自動對其進行更新(通過模型上的before_save回調進行更新)。

我看着pjax,但這看起來太沉重了。 我要發生的就是更改后的一個tddiv ,它具有以下內容:

<td><%= weight.subtotal %></td>

無需頁面重新加載即可自動更新。

謝謝。

編輯1:最好是“就地最佳”之類的寶石,但它不是依靠用戶更新值,而是偵聽值是否已更改-並且當它更改時,它只會更新頁面上的該值。 。

無法提供任何gem,因此從頭開始,它需要一個返回當前值的方法,例如,

/weights/get_subtotal/:id.:format

我建議只是將其吐入json中,以便jquery可以輕松解釋。

然后,使用jquery輪詢該方法,如果已更改,請像這樣更改視圖中的值。

function poll(){
    setTimeout(function(){
        $.ajax({ url: "/weights/get_subtotal/xx", success: function(data){

            //put code here to compare old td value 
            //with current value, and replace if different

            //Setup the next poll recursively
            poll();
        }, dataType: "xxxxx"});
    }, 10000);
};
$(document).ready(function(){
    poll();
});

如果您將權重的ID放在td的ID中會很容易,例如,

<td id="weigth_<%= weight.id%>"><%= weight.subtotal %></td> 

希望能幫助到你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM