[英]How frequently data should be saved if form is very large
我對使用ajax將數據保存在數據庫中有疑問。 (我可以做這部分)。 我的問題是我有一個很大的嵌套表格(我無法更改)。 輸入字段方面的大形式,需要保存在大約100個字段的數據中。 新字段可能會打開,取決於用戶選擇的選項。
假設一個問題是您玩哪種游戲。 在多選下拉菜單中,如果他選擇一個游戲,那么下一個問題將是您在該天哪一天的時間玩此游戲的頻率等等。 每個游戲可能有不同的問題集。
現在我的問題是如何將這些數據保存在數據庫中。 用戶單擊提交后應該保存它還是應該在用戶感覺數據之間保存它。 這樣他刷新數據便可以填充他的數據。
我應該多久發送一次Ajax請求以保存數據,以及如何從新字段中獲取數據以及如何將其保存在Rails中。 我知道update.attributes
請幫助我或提供一些建議,我應該如何做。
如果您實時編輯或僅在保存時遇到用戶體驗問題。
但是,如果您經常保存(例如自動保存)並擔心其大小(無論大文本還是斑點,那么100條普通列還是可以的),那么您想要做的簡單的事情就是只保存實際具有改變。
有很多方法可以用JavaScript來實現。 您可能只是在用戶完成編輯后保存每個輸入(例如,輸入失去焦點),或者可能基於計時器進行保存並跟蹤自上次保存以來的更改字段。
然后讓您的JavaScript在其AJAX請求中包括這些字段(使用PATCH
可能是一種很好的方法)。 然后,Rails應該僅嘗試將屬性保存在更改的對象上(通過update_attributes
或save
在ActiveRecord上)。 如果您還想優化SELECT
,請在類上使用update
或update_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.