簡體   English   中英

如果表格很大,應該多久保存一次數據

[英]How frequently data should be saved if form is very large

我對使用ajax將數據保存在數據庫中有疑問。 (我可以做這部分)。 我的問題是我有一個很大的嵌套表格(我無法更改)。 輸入字段方面的大形式,需要保存在大約100個字段的數據中。 新字段可能會打開,取決於用戶選擇的選項。

假設一個問題是您玩哪種游戲。 在多選下拉菜單中,如果他選擇一個游戲,那么下一個問題將是您在該天哪一天的時間玩此游戲的頻率等等。 每個游戲可能有不同的問題集。

現在我的問題是如何將這些數據保存在數據庫中。 用戶單擊提交后應該保存它還是應該在用戶感覺數據之間保存它。 這樣他刷新數據便可以填充他的數據。

我應該多久發送一次Ajax請求以保存數據,以及如何從新字段中獲取數據以及如何將其保存在Rails中。 我知道update.attributes

請幫助我或提供一些建議,我應該如何做。

如果您實時編輯或僅在保存時遇到用戶體驗問題。

但是,如果您經常保存(例如自動保存)並擔心其大小(無論大文本還是斑點,那么100條普通列還是可以的),那么您想要做的簡單的事情就是只保存實際具有改變。

有很多方法可以用JavaScript來實現。 您可能只是在用戶完成編輯后保存每個輸入(例如,輸入失去焦點),或者可能基於計時器進行保存並跟蹤自上次保存以來的更改字段。

然后讓您的JavaScript在其AJAX請求中包括這些字段(使用PATCH可能是一種很好的方法)。 然后,Rails應該僅嘗試將屬性保存在更改的對象上(通過update_attributessave在ActiveRecord上)。 如果您還想優化SELECT ,請在類上使用updateupdate_all 例如最終像:

MyBigRecord.update(id, title: "My new title")

您可以在此處輕松使用正常的強參數,其中僅包括params實際存在的params

MyBigRecord.update(id, params.require(:my_big_record).permit(:title, :author, :etc))

如果需要處理子對象,則可能需要進行一些特殊處理,但想法是相同的。 一點邏輯也可以按需進行初始create ,盡管您的JavaScript隨后會收到id以供將來保存。

暫無
暫無

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

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