2012-03-16 70 views
1

我想知道什麼被認爲是處理通過ajax提交的表單的最佳做法。具體來說,我想知道處理包含錯誤的表單的最佳方式是什麼。處理通過ajax提交的表單中的錯誤的最佳做法?

我看到在提交表單有錯誤的兩個可能的選擇:

A.服務器返回的字段名稱/錯誤信息的名稱值對的JSON文件。這將需要在客戶端進行處理,並且需要通過在每個字段前添加錯誤消息並更改表單的樣式(例如向字段中添加錯誤類)來更改表單。

OR

B.服務器簡單地返回包含錯誤消息和風格形式的新的HTML片段預先施加。除了換出表格外,無需處理任何客戶端。

對我來說,B選項似乎更容易/更快捷,但我不禁覺得這不是'最佳實踐'。兩種方法都有利/弊嗎?

回答

1

在這裏,我認爲分離邏輯是一個巨大的問題。

隨着項目的發展,您通常會有一個前端團隊和一個後端團隊。想象一下,該網站得到了巨大的改造,但邏輯保持不變。當佈局在服務器端執行時,選項B更難改變樣式。

應用程序邏輯(這種情況是服務器端驗證)應該與表示層(這是瀏覽器呈現的html/css)分離。

但是在一天結束時,我們會得到報酬以產生結果,所以如果您不想贏得學院獎勵的最佳質量代碼,並且您有賬單支付,只需以最快的方式完成。

0

我會選擇第一個選項。 第二個選項只會增加服務器上的負載......您總是希望避免這種負載。另外,我覺得如果樣式是在服務器端完成的,那麼您的網站並不完全是模塊化的......所有樣式都應該只在前端完成。

0

這是一個意見問題,但有幾個客觀的事情要說這個話題。您的第一個選擇是純粹的JSON選擇,它最適合專注於速度和儘可能小的HTTP請求的應用程序。

另一種選擇,處理你的表單服務器端,然後通過AJAX返回新的表單似乎沒有太多的優勢給我。如果你要走這條路線,那麼爲什麼要用AJAX呢?爲什麼不只是做一個常規的表單發佈到服務器?

我通常更喜歡前端驗證和服務器端驗證。通過這種方式,如果事物無效,您可以避免使用JSON調用,但以防有人偷偷在服務器端代碼中進行驗證。

+0

我想使用ajax,因爲它適用於Web應用程序,我不想在提交表單時進行完整的頁面刷新。我考慮過使用包含表單的iframe,但是我認爲我仍然想要去ajax路線。 – Groady 2012-03-17 23:24:10

+0

@Gady使用JSON或HTML作爲AJAX響應是情境。以HTML格式返回整個表單看起來對我來說太過分了。返回HTML片段對我來說很有意義,可以簡化開發。 JSON傳輸速度更快,但如果您必須通過解析來創建HTML元素,用戶可能沒有快速的計算機來執行此操作。權衡你的選擇並選擇適當的方法。 – hradac 2012-03-19 14:03:52

0

我會在前端建立一個用於驗證的JSON方案。只是基本的東西,比如你在每個字段上檢查的內容,哪些字段是可選的等等......這些內容會被打包到每個頁面上。然後讓您的前端開發人員進行預先驗證,以避免不必要的調用,無論這些調用對他們​​最有意義。

預構建的錯誤並不違揹我所知道的任何最佳實踐,也不是一種可怕的方式(人們往往會拋出窗口中的風格的UI手冊,但無論如何),但有時候你會想爲不同的問題提供更多的細節或不同的錯誤。

總是瞄準你的蛋糕和它吃,IMO。