話說今年剛轉職的時候,下載了公司的web project 來看到底平台怎麼運作的,但一抓來以後整個都傻了,因為我根本找不到action的進入點@@ ...
直到高人指點才知道我們全都跑ajax ,所以要乖乖的去查javascript,其中就看到了一段很神奇的code (我承認我對前端技術很不熟Q_Q)
ABC.bala() ......
ABC.heyyou()....
好 那我該來找一下ABC這物件的宣告在哪裡...
用全文檔案搜尋關鍵字 --> var ABC , 或者搜尋 function ABC
這兩個方式都找不到@@ ... 挖哩....那到底是宣告在哪裡啊...都要暈倒了
直到硬著頭皮去問別人,才知道開發者把ABC這物件直接宣告成 全域物件window的屬性去了
window.ABC = {}
好吧,這做法 雖然可以理解,但內心完全不能接受,因為這實在太難查閱,且毫無追蹤的可能性,仔細地跟開發者聊了一下他的理念,為何要這樣寫,他的想法很單純,為了屏蔽所有的ajax url 對應所送出的參數,讓一般人無法很輕易的查找js 檔案得知其細節 !!!
但,這沒用阿,即使是塞進了window 物件,仍然可在browser 的debugger help之下,逐步的追蹤解析js 運作,還是能找的到他到底送出了啥...所以這方法現在看來我是覺得有點蠢的
JS 的動態特性已經讓一般人不容易處理了,若又這樣沒來由的封裝到原生物件裏頭,且也不保留任何說明文件,真的很難做 !!
沒有留言:
張貼留言