深度剖析JSON 形式的相關問題
當用戶輸入新車輛數據時,您將在數組對象中創(chuàng)建一個新元素。不需要任何笨拙的字符串操作。當用戶輸完所有車輛數據后,您只需構建一個源于該對象的 JSON 字符串,并通過存儲到某個隱藏字段中的方式將該字符串發(fā)送至服務器。這種方法要比第一種方法好得多。
現(xiàn)在,多組屬性和多值屬性面臨的問題是必須將數據輸入到相同的輸入字段中。那意味著在輸入第二臺車輛的數據之前,必須先保存已輸入的第一臺車輛的數據。您可以通過兩種方法來解決此問題:
將第一臺車輛的數據發(fā)送到服務器上并清空輸入字段,以允許用戶輸入下一臺車輛的數據。 JSON 形式將數據緩存到客戶機上并清空輸入字段,以允許用戶輸入下一臺車輛的數據。第一種方法存在的問題是每輸入一臺車輛的數據就需要訪問一次服務器。#t#
這不太好;如果在輸入車輛數據后都必須等待服務器響應,用戶會覺得很失望。換種方法,第二種方法的響應時間幾乎為零。用戶可以快速輸入所有車輛數據而無需等待。但這里需要考慮的是如何將數據存儲到客戶端上。這里有更多方法可將數據存儲到客戶機上:
在用戶單擊以添加下一臺車輛的數據時將數據以某種形式緩存到隱藏的表字段中。 將數據緩存到一個 JavaScript 對象中。如果要將數據存儲到隱藏字段中,您會為用戶每次輸入新的車輛數據都要處理很多隱藏字段或處理隱藏字段數據而感到煩惱。這就像有字符串操作就需要頻繁處理字符串一樣。
但是第二種緩存數據的方法提供了一種面向對象的方法來緩存。當用戶輸入新車輛數據時,您將在數組對象中創(chuàng)建一個新元素。不需要任何笨拙的字符串操作。當用戶輸完所有車輛數據后,您只需構建一個源于該對象的JSON 形式,并通過存儲到某個隱藏字段中的方式將該字符串發(fā)送至服務器。這種方法要比第一種方法好得多。
當用戶提交一個頁面時調用的函數實際上用于驗證最少的出現(xiàn)次數。這種方法的最大好處是屏幕不需要刷新以輸入新車輛數據。提供此類靜態(tài)屏幕曾經是 Ajax 技術的主要目標,而您現(xiàn)在用 JSON 也能完成此目標。
這是關于更新 JSON 形式對象和通過 JavaScript 處理 HTML DOM 樹的全部內容。用戶響應時間是最小值,因為所有操作僅在客戶端上執(zhí)行。您可以使用 JSON 來為應用程序提供 Ajax 功能。
當用戶單擊 Save 按鈕時,程序將調用另一個 JavaScript 函數,該函數將把此 JSON 對象 字符串化 并將其存儲到程序提交到服務器上的隱藏表字段中。JSON有一個 JSON.stringify()
函數,該函數將獲取 JavaScript 對象作為輸入并返回字符串輸出。
服務器端必須能夠理解 JSON 形式的字符串并生成一個服務器端對象,以處理和保存數據。Web 站點 http://www.json.org/java/index.html 提供了一個 Java API,該 API 用于處理基于 Java 的應用程序的大部分需求。