在產品的開發過程當中,發現有少數章節重複被建立的狀況。分析日誌和數據判斷是由於服務器接收到重複的請求,而這些請求重複可能有兩個緣由:客戶端重複發送和網絡出現重傳現象。服務器
對於這兩個方面,我的以爲能夠從兩方面入手:網絡
在現實中,咱們是使用了第1個方法。在每一個Ajax請求後加RequestID防止重複請求的處理,同時客戶端修改代碼使不會產生連續請求。這裏面RequestID因爲是由客戶端生成的,不能保證惟一性,因此RequestID須要與Nickname關聯。日誌
這是一個通用修改,應對的是網絡重傳問題。可是不能徹底解決章節重複建立問題,只是解決了目前看到的出現問題。server
那進一步思考,重複建立是否是由於API給server提供的信息不夠,致使server沒法判斷是否應該執行?
若是提供足夠的信息量是能夠判斷請求是否應該執行,可是這個足夠的信息量很差選取。選取不當可能致使多終端問題,因此把問題複雜化了。事務
如今我能想到的是基於事務惟一的方法,可是具體方法得再去研究。開發