2013-01-17

MVC 無痛升級 jQuery 1.9

這兩天看到 jQuery 正式釋出了 1.9 、2.0 Beta版的新消息,1.9 最大的改變是移除及取代了一堆舊版的API,2.0之後則將不再支援 IE 6~8。

(男丁格爾兄的文章裡,詳盡地介紹了本次Release的相關內容,大推!!)

身為熱血的IT從業人員,一定要身先士卒去升級才行,以下是以 MVC 專案升級 jQuery 1.9的過程:

1.更新 jQuery NuGet套件

一如往常,我們先更新 jQuery 的NuGet套件,然後執行網站,一切就輕鬆完成了....嗎?
本篇教學到此結束....喂!!~~
首先映入眼簾的就是 JavaScript 的錯誤:

很不幸的,至少jQuery Unobtrusive Ajax就有用到舊版API中的 .live() 而導致錯誤,所以頁面也無法正常呈現。

2.手動加入 jQuery Migrate PlugIn

還好,貼心的官方為了讓新版API相容於舊版,準備了 jQuery Migrate PlugIn 提供服用;但目前它並未包含在 jQuery的套件中,也還不是Nuget的套件 ,所以必須自行下載 js檔案後加入至專案:



3.修改 BundleConfig

手動加入js檔之後,也須一併修改 BundleConfig原本的 jQuery 部分,讓所有引用 jQuery的頁面也同時引用 jQuery Migrate PlugIn:

(Bundling真的好方便啊,只改一行就好!)

bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                        "~/Scripts/jquery-{version}.js",
                        "~/Scripts/jquery-migrate-{version}.js"));


做完這個步驟之後,頁面呈現就正常了!

【後記】

截止目前尚未發現移轉後有何異常,但升級前還是多加評估再決定;若是自行撰寫的 jQuery 程式,建議漸漸改用新版的API比較妥當。

沒有留言:

張貼留言

引用 Topshelf 無法進行偵錯的經驗

Topshelf  是一個可以簡化撰寫 Windows Service 的套件,引用之後,我們只要當作撰寫一般 Console 的應用程式就可以。 只是近來撰寫上遇到無法進行Debug的狀況,在Visual Studio一進行偵錯可以看到Console 程式被執行,並顯示...