新的項目的總結,幾個隨筆

評論的朋友指出了個人幾個書寫問題,已糾正,謝謝!php

/**************************我是長長的分割線*************************************/ html

  

好吧,拖了很久了的才更新,雖然寫的東西都是菜鳥專屬,還很雜碎,可是仍是厚着臉皮寫下去,發表吧 -。-前端

最近確定是由於浪的太high了,因此上週作什麼事情都很不專心,項目磨磨蹭蹭的,被老大罵了一頓,噴的狗血淋頭。哎,失敗失敗。vue

總結一下本身的能力問題,webpack

  首先,會,可是不夠深刻、精通,許多東西處於懂與不懂之間,好比事件綁定到底要不要解綁,何時解綁,我老是須要思考一下子才能真正的想通,這是時間的損失;web

    關於事件解綁,我上一個博客也稍微總結了一點,連接:http://www.cnblogs.com/wplay/p/6164930.htmlajax

  其次,代碼雜亂(固然不是真的亂),本身以爲還好,可是他人很難進行維護,想了想,是作了很多的函數封裝,可是仍是不夠,沒有真正的高聚合低耦合,這也是別人看不懂的緣由之一吧;後端

  再且,代碼性能不夠,有些差,下面我將有較爲詳細的說明。瀏覽器

  最後,固然不是真的最後,可是概括爲一句話就是,仍是太嫩了。。。sass

 

首先說說此次適合菜鳥的幾個地方吧。

  1.靜態注入

  咱們公司的項目,並非經過www.XXX.com/XXX.html這種類型的方式進入訪問的,而是經過聽起來很牛逼轟轟的靜態注入,也就是www.XXX.com/XXX.php這種形式進入的,首前後臺會把前端頁面靜態注入到某個php文件中(具體的我也沒有問後臺,大概感受就是html中的<iframe>標籤這種感受吧),用戶能夠經過訪問php文件直接進入到咱們前端寫好的HTML文件。

  好吧,以上都是廢話,我想要說的是,咱們(這裏咱們是指的前端們)寫的頁面通常都會把後臺數據拿過來進行一次initial(初始化)沒錯吧,那麼初始化的方式我如今知道的有兩種:

    1.最基本的ajax,調用url獲取後臺傳回來的params(參數)

    2.就是剛知道的靜態注入,由於咱們的項目被php包裹住了,至關於咱們的js變成了局部變量,他們php裏面的變量變成了全局變量【php做爲所謂的世界上最好的可以替代先後端的語言(呵呵->。<-,我是前端,很少作評價),固然能夠聲明js的變量】,因此咱們無需經過任何的請求,直接使用提供的全局變量(也就是咱們須要的params)就能夠了。固然,咱們須要額外作一件事。那就是,首先在咱們的js最上面(也就是咱們本身的全局),進行一次聲明,否則瀏覽器會報錯:undefined;以下圖,聲明的變量都是我須要的參數:

    

 

  2.關於jQuery的.attr()以及.prop()

  使用.attr()對input[type=checkbox]進行判斷$('').attr('checked')時,結果倒是undefined,一臉懵逼。。。同事告訴我改成.prop(),瞬間OK,後來google了一下,看到一我的的博客,寫的關於.attr()和.prop()的總結,寫的很好,受益不淺,

    原帖連接:http://www.cnblogs.com/wplay/p/6164930.html(有興趣的能夠去看一下)(但願我這麼作不是侵權吧。。。)

  稍微總結一下,就是具有true/false屬性的元素,對其相關屬性進行判斷時,推薦使用.prop(),由於.attr()會出現先後行爲矛盾,因此官方jQeury1.6之後特地推出了.prop()做爲.attr()的補充。

  哪些標籤的屬性的屬性值爲true/false呢?其實,就是表單元素啦,也就是input、select和option,textarea啦。(上面的連接做者最後有較爲完整的圖示總結,推薦去看一下)

 

  3.關於代碼的性能:

    3.1咱們各位對比一下下面的兩種操做,對文本框進行兩個事件,哪一個的性能更好?

    

 

    固然是第一種,最開始我一直不懂爲何其餘前端把這些變量提早聲明一次,又不是DOM對象,還並無敲代碼多。後來發現,

      第一種,提早把常操做的jQuery對象聲明一次,瀏覽器只須要第一次搜索到DOM對象,而且以jQuery對象的形式存儲到一個變量中,之後再使用此對象就不須要再搜索了。

      第二種,每次使用該jQuery對象,都須要全DOM對象搜索一次再使用,該對象不會被記憶,每次都要遍歷一次,明顯加劇了瀏覽器的負擔。

    因此,建議之後把經常使用的jQuery對象也先聲明一次,而後後面使用,就給提升了瀏覽器的速度

    3.2 如何動態的添加DOM對象更加合理?

    能夠大部分人並無這個問題,可是我使用jQuery使用high了,因此

    ,,,

    。。。

    

    如圖,我這感人的五層append嵌套+N多並列,被幹掉了,從第三層append開始就沒法渲染了,大寫的懵逼,因此改了改

    

    綜上,血的教訓,不要寫太多append啊,徹底能夠用字符串去寫的,並且append超級消耗性能的(估計的),否則也不會無力渲染第三層之後的元素。

 

以上即是此次的總結了,哎,愈來愈以爲本身的弱小,並且已經深陷在PC的jQuery深淵了,必須本身走出去,去學習自動化構建工具webpack,去多使用sass了,去學習vue等框架了,否則浪費着時間,註定被淘汰。。。

相關文章
相關標籤/搜索