MozTW 討論區 https://forum.moztw.org/ |
|
網路上有無擴充JS相容性的專案 https://forum.moztw.org/viewtopic.php?f=13&t=20033 |
第 1 頁 (共 1 頁) |
發表人: | Milx [ 2007-08-12, 14:38 ] |
文章主題 : | 網路上有無擴充JS相容性的專案 |
例如有一個Method是JavaScript 1.6版之後才建立的 裝了外掛(在網頁中插入.js檔)後 可以讓JavaScript 1.5版以下的JS引擎看得懂這個Method 有人作過這種東西嗎? 我想嘗試看看 我想這樣的程式應該很有用吧 ![]() 不知道大家覺得如何? |
發表人: | kourge [ 2007-08-12, 22:19 ] |
文章主題 : | |
能否舉個例子?像 Array.pop / push 這種古老的方法還有 Array.forEach / map / filter 這種新興的方法都可以用 prototype 這個屬性來模擬。 Prototype 這個 js lib 就是因為靠 prototype 這個屬性擴充了不少原生的 JS 物件,所以才取名為 Prototype。 push 舉例: 代碼: Array.prototype.push = function() {
for (i = 0; i < arguments.length; i++) { this[this.length] = arguments[i]; } return this[this.length - 1]; } 像我是覺得 push 是不需要模擬啦,什麼年代了還在支援 IE 5.5,倒不如不要支援,逼使用者至少用 IE 6 或 Firefox。至於模擬 JS 1.6 或 1.7 新增的 method 倒是滿值得的,不過有些還是無法模擬,像 yield 或 array comprehension 這種 language construct 就不能。 |
發表人: | Milx [ 2007-08-12, 22:48 ] |
文章主題 : | |
[quote="kourge"][/quote] 這就是我要的 ![]() 利用物件的prototype屬性 來解決版本和瀏覽器相容性 這應該是提高相容性最好的方法吧 怎麼phpbb會隨便建一個函式來處理呢?? 難道phpbb是很古老的東西? http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Global_Objects:Array:indexOf#Compatibility SpiderMonkey也是用同樣的技術來擴充新版的Javascript 如果把這些原始碼寫在網頁裡 IE也可以支援Javascript 1.6以上的版本 moztw不打算這樣作嗎? |
發表人: | kourge [ 2007-08-13, 07:22 ] |
文章主題 : | |
主要是 phpBB 本身的 JS 太噁心,我甚至有點想把整個討論區給轉移到 Drupal,不過下載過 phpBB 3,發現 JS 好太多了(只是 coding style 還有不用現有的 js lib 我還是無法接受)。 重點是當初 subBlue 的人寫這些 JS 的時候根本就是網路的黑暗時期,寫 JS 剪剪貼貼、用 eval、原生陣列不可靠、沒有標準的 DOM method、等等。 另外 SpiderMonkey 並不是靠 prototype 來擴充成 JS 1.6 或 1.7,而是直接從 C 原始碼開刀,DevMo 上面舉的 indexOf 這個例子所指的是 indexOf 的演算法,實際上如果把 SpiderMonkey 用 C 所寫出來的原生實作,跟利用 JS 的 prototype 所寫擴充性實作,兩者的效能落差很多。並非 prototype 的效能不好(實際應用是可以的),而是 C implementation 快太多了。 |
發表人: | Milx [ 2007-08-13, 14:49 ] |
文章主題 : | |
kourge 寫: 主要是 phpBB 本身的 JS 太噁心,我甚至有點想把整個討論區給轉移到 Drupal,不過下載過 phpBB 3,發現 JS 好太多了(只是 coding style 還有不用現有的 js lib 我還是無法接受)。 升級之後有沒有可能解決論壇中rss和圖片的問題 這兩個功能當初不是好好的嗎? 怎麼會壞掉 其實我覺得升級比較好 這論壇會用到比較多JS的地方應該只有發文時插入代碼 要改的話應該沒有什麼問題 kourge 寫: 另外 SpiderMonkey 並不是靠 prototype 來擴充成 JS 1.6 或 1.7,而是直接從 C 原始碼開刀,DevMo 上面舉的 indexOf 這個例子所指的是 indexOf 的演算法,實際上如果把 SpiderMonkey 用 C 所寫出來的原生實作,跟利用 JS 的 prototype 所寫擴充性實作,兩者的效能落差很多。並非 prototype 的效能不好(實際應用是可以的),而是 C implementation 快太多了。
瞭解 |
發表人: | kourge [ 2007-08-13, 22:30 ] |
文章主題 : | |
RSS 的功能其實是外掛上去的,不是 phpBB 本身內建的,所以才會那麼容易 break ![]() 然後附件檔案的整個功能又被重度修改過> <" |
第 1 頁 (共 1 頁) | 所有顯示的時間為 UTC + 8 小時 |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |