jQuery 處理 json 內容

這已經不是第一次了,浪費了我整整半小時,就是在找出原因。。。

這次,寫下來提醒自己:


 

jQuery 中,進行 source 呼叫時的規則:

  1. 呼叫時,查詢關鍵字是以URL String的形態傳送到服務端。
  2. 服務端返回時,直接以 echo json($array) 返回字串即可。
  3. jQuery會自動解讀 json 內容,以指定的形態進行後續處理。

 

。。。

這次犯這個老錯誤,可以說太久沒弄程式了,還在熱身狀態中,無法避免犯這類錯誤。但如果下來再犯同一個錯誤。。。

可以買塊豆腐敲頭去了~

jquery.min.map — 再一次被Google Chrome玩死。。。

這是一個悲慘的實錄。

一早就被告知某個正在開發中的網頁程序出現不知名問題。最頭疼的是這網頁主要以jQuery開發,要檢查一些所謂不知名的問題時,可以說是老鼠拉龜無從下手。這次的情況就是如此。

在進入用戶界面後,一旦刷新頁面就會跳出一個警告通知,裡面只有非常精簡的一個英文字:error。花了兩個人,一個早上做檢查,也查問了谷歌大神不知道多少次數了,還是找不到問題的源頭在哪。

最後我只好先放下,讓同事繼續尋找根源。結果剛才去喝了一杯咖啡,回來就立刻有了靈感!我在想:頁面上的動作是通過jQuery和php互動,然後把返回的結果重新整理了,再顯示在頁面上。那麼有沒有可能在網服上的error log中找到答案呢?

結果真的讓我看到一絲曙光了。。。

httpd error log

真的詭異。jQuery 明明只用了一個主要的 min.js,怎麼會無端端跑了這個未曾謀面的 jquery.min.map 出來?!再次不恥下問去麻煩了下谷歌大神,才得知原來一切都是Google Chrome更新後搞出來的問題!

在剛更新的32版中,它預設自行開啟了 Enable source maps的選項,所以每當其進行jQuery的查詢時,會自動要求查詢 jquery.min.map 這個文件。由於在 jQuery 源碼中,這個檔案屬於可選項目,所以導致找不到檔案!

從 羊小咩-喇低賽 處的解釋是:

what is jquery source map

解決方式有二:
1. 修改Google Chrome的設置。進入【Developer Tools】 -> 【設定】,把 Enable source maps 這個項目關掉(false)。

2. 下載同一版本的source maps,放置在網服上的同一位置。

。。。。。

最後,Google Chrome貌似不時的更新就會給我們一些特別驚喜。。。
這些驚喜是不是可以盡量減少啊? (握拳熱淚)