令人抓狂的src-dojo開發中遇到的一個問題

     前段時間,做的項目中引入dojo庫。dojo的組織結構清晰,界面友好,對網頁performance有提高等特性讓我感到很興奮。項目當中不光直接引用dojo現成的widget還自己定製了一些widget。定製的widget主要功能是選擇用戶,只要輸入名字的幾個字母,所有可能的用戶會列表顯示出來。等這個widget做好並整合到頁面中之後發現了兩個奇怪的問題:

1。通過sql profiler觀察,在load首頁或是其他使用到這個定製widget頁面時,都會重複請求首頁一次,導致首頁中的業務邏輯重複執行。

2。在輸入用戶名選擇用戶時,首頁中的業務邏輯也被執行。

     在網上查了許久,曾經懷疑過是dojo的框架問題,是ie/firefox對事件提交機制的問題(冒泡和廣播模式),xmlhttprequest的cache問題。。。 按照分析,修改代碼後這兩個問題還是不能解決。

     最終通過firebug和httpfox兩個工具的debug最終發現問題所在。原來在定製的widget中,要使用到圖片,需要定義img的src路徑。在沒有任何操作的時候,img的src賦值爲“”。有操作的時候,根據結果分別顯示打勾和打叉的圖標。問題就出在這個img的src賦值上,debug過程中發現,只要img.src=""一執行,立馬就去請求站點的起始頁面。這就說明,img.src=""並不是沒有值,而是給賦值成默認的站點地址,例如http://xxx.com/test/。此時服務器會把這個請求導向到默認頁面,這個默認頁面在我這個項目中是含有業務邏輯的default.asp,這樣就導致關聯操作。

     這樣第二個問題找到了根源,而第一個問題順着這個思路去查,發現在定製的widget中的自定義模版裏用html標記註明了src=“”,這樣就導致使用定製widget的頁面裝載的時候也會重複請求默認頁面。

     修改img.src="test.htm",test.htm是一個空白頁面,問題得以解決。

     這樣一個問題,現在看看挺簡單的。但在沒有查出原因之前,讓大家很傷腦筋。甚至考慮要更換dojo,採用其他的ajax庫。誰曾想是這麼一個小爬蟲在作怪,新技術的採用可以很快,但要真正用好並不容易。

發佈了38 篇原創文章 · 獲贊 1 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章