鍍金池/ 問答/HTML5  HTML/ 一場頁面載入事件引發(fā)的血案

一場頁面載入事件引發(fā)的血案

碰到了一個問題,我打算寫一個option的工具類,這樣的話可以方便我來構(gòu)造opention標(biāo)簽,先上代碼

clipboard.png

意圖很明確,通過ajax像后臺傳入一個dictypeCode的參數(shù),來得到一個json數(shù)據(jù),后臺數(shù)據(jù)是由Hibnate來進(jìn)行查詢的,后臺代碼我確定沒啥問題
然后我寫了一個頁面載入的事件來調(diào)用這個函數(shù),類似于這樣

clipboard.png

這是一個Jquery的函數(shù),通過第一個參數(shù)來決定像后臺傳入那些數(shù)據(jù),本來以為到這就寫好了,但是奇葩的事情卻發(fā)生了

clipboard.png

我在上面的那個函數(shù)里自己構(gòu)造了一個option標(biāo)簽,但是查到的數(shù)據(jù)卻是一樣的,通過打印后臺的json我看到了這個

clipboard.png

這讓我覺得很驚奇,我在頁面載入事件里明明傳的是001,002,004,到后臺怎么都解析成了001了呢,以為自己代碼寫錯之后不甘心的刷新了一下頁面,結(jié)果卻變成了這樣:

clipboard.png

這讓我更加的不解了,看了下后臺的json數(shù)據(jù),數(shù)據(jù)卻是這樣的

clipboard.png
于是再次刷新了下頁面,數(shù)據(jù)卻又是正確的了

clipboard.png

這讓我覺得非常不理解,為什么有時候刷新頁面數(shù)據(jù)是錯誤的,有時候卻又是正確的,有時候數(shù)據(jù)又都是重合的,查了半天也沒查出什么原因,求解,感激不盡

回答
編輯回答
脾氣硬

受到了邊城網(wǎng)友的啟發(fā),問題已經(jīng)解決,下面來分析下原因:
首先我以為是緩存的問題,但是ajax post提交是沒有緩存的,多說一嘴,我這個網(wǎng)站是SSH架構(gòu)的,通過邊城網(wǎng)友的啟發(fā)我去瀏覽器抓了一下前端的數(shù)據(jù)包,發(fā)現(xiàn)數(shù)據(jù)是正常提交到后臺的,但是后臺的代碼返回的json卻是固定的,于是我去看了下spring的配置文件

clipboard.png

很明顯,我先前并沒有設(shè)置scope屬性,導(dǎo)致spring只為后臺的baseDictaction創(chuàng)建了一個對象,盡管我提交上去的數(shù)據(jù)是三個,但是如果只創(chuàng)建了一個對象的話相當(dāng)于我只訪問了一次baseDictaction,于是把Scope屬性改成多例的,問題解決

2017年12月24日 13:47