<address id="ttjl9"></address>

      <noframes id="ttjl9"><address id="ttjl9"><nobr id="ttjl9"></nobr></address>
      <form id="ttjl9"></form>
        <em id="ttjl9"><span id="ttjl9"></span></em>
        <address id="ttjl9"></address>

          <noframes id="ttjl9"><form id="ttjl9"></form>

          首頁

          前端性能優化 —— 移動端瀏覽器優化策略

          seo達人

          如果您想訂閱本博客內容,每天自動發到您的郵箱中, 請點這里 

          摘要: 前端性能優化是一個很寬泛的概念,本書前面的部分也多多少少提到一些前端優化方法,這也是我們一直在關注的一件重要事情。配合各種方式、手段、輔助系統,前端優化的最終目的都是提升用戶體驗,改善頁面性能,我們常常竭盡全力進行前端頁面優化,但卻忽略了這樣做的效果和意義。先不急于探究前端優化具體可以怎樣去做,先看看什么是前端性能,應該怎樣去了解和評價前端頁面的性能。


          相對于桌面端瀏覽器,移動端Web瀏覽器上有一些較為明顯的特點:設備屏幕較小、新特性兼容性較好、支持一些較新的HTML5和CSS3特性、需要與Native應用交互等。但移動端瀏覽器可用的CPU計算資源和網絡資源極為有限,因此要做好移動端Web上的優化往往需要做更多的事情。


          首先,在移動端Web的前端頁面渲染中,桌面瀏覽器端上的優化規則同樣適用,此外針對移動端也要做一些的優化來達到更好的效果。需要注意的是,并不是移動端的優化原則在桌面瀏覽器端就不適用,而是由于兼容性和差異性的原因,一些優化原則在移動端更具代表性。


          一、網絡加載類


          1.首屏數據請求提前,避免JavaScript文件加載后才請求數據


          為了進一步提升頁面加載速度,可以考慮將頁面的數據請求盡可能提前,避免在JavaScript加載完成后才去請求數據。通常數據請求是頁面內容渲染中關鍵路徑最長的部分,而且不能并行,所以如果能將數據請求提前,可以極大程度上縮短頁面內容的渲染完成時間。


          2.首屏加載和按需加載,非首屏內容滾屏加載,保證首屏內容最小化


          由于移動端網絡速度相對較慢,網絡資源有限,因此為了盡快完成頁面內容的加載,需要保證首屏加載資源最小化,非首屏內容使用滾動的方式異步加載。一般推薦移動端頁面首屏數據展示延時最長不超過3秒。目前中國聯通3G的網絡速度為338KB/s(2.71Mb/s),所以推薦首屏所有資源大小不超過1014KB,即大約不超過1MB。


          3.模塊化資源并行下載


          在移動端資源加載中,盡量保證JavaScript資源并行加載,主要指的是模塊化JavaScript資源的異步加載,例如AMD的異步模塊,使用并行的加載方式能夠縮短多個文件資源的加載時間。


          4.inline首屏必備的CSS和JavaScript


          通常為了在HTML加載完成時能使瀏覽器中有基本的樣式,需要將頁面渲染時必備的CSS和JavaScript通過<script>或<style>內聯到頁面中,避免頁面HTML載入完成到頁面內容展示這段過程中頁面出現空白。


          <!DOCTYPE html>

          <html lang="en">

          <head>

              <meta charset="UTF-8">

              <title>樣例</title>

              <meta name="viewport" content="width=device-width,minimum-scale=1.0, maximum-scale=1.0,user-scalable=no">

              <style>

              /* 必備的首屏CSS */

              html, body{

                  margin: 0;

                  padding: 0;

                  background-color: #ccc;

              }

              </style>

          </head>

          <body>

          </body>


          5.meta dns prefetch設置DNS預解析


          設置文件資源的DNS預解析,讓瀏覽器提前解析獲取靜態資源的主機IP,避免等到請求時才發起DNS解析請求。通常在移動端HTML中可以采用如下方式完成。


          <!-- cdn域名預解析 -->

          <meta http-equiv="x-dns-prefetch-control" content="on">

          <link rel="dns-prefetch" >


          6.資源預加載


          對于移動端首屏加載后可能會被使用的資源,需要在首屏完成加載后盡快進行加載,保證在用戶需要瀏覽時已經加載完成,這時候如果再去異步請求就顯得很慢。


          7.合理利用MTU策略


          通常情況下,我們認為TCP網絡傳輸的最大傳輸單元(Maximum Transmission Unit,MTU)為1500B,即網絡一個RTT(Round-Trip Time,網絡請求往返時間)時間內可以傳輸的數據量最大為1500字節。因此,在前后端分離的開發模式中,盡量保證頁面的HTML內容在1KB以內,這樣整個HTML的內容請求就可以在一個RTT時間內請求完成,最大限度地提高HTML載入速度。


          二、緩存類


          1.合理利用瀏覽器緩存


          除了上面說到的使用Cache-Control、Expires、Etag和Last-Modified來設置HTTP緩存外,在移動端還可以使用localStorage等來保存AJAX返回的數據,或者使用localStorage保存CSS或JavaScript靜態資源內容,實現移動端的離線應用,盡可能減少網絡請求,保證靜態資源內容的快速加載。


          2.靜態資源離線方案


          對于移動端或Hybrid應用,可以設置離線文件或離線包機制讓靜態資源請求從本地讀取,加快資源載入速度,并實現離線更新。關于這塊內容,我們會在后面的章節中重點講解。


          3.嘗試使用AMP HTML


          AMP HTML可以作為優化前端頁面性能的一個解決方案,使用AMP Component中的元素來代替原始的頁面元素進行直接渲染。


          <!-- 不推薦 -->

          <video width="400" height="300" src="http://www.domain.com/videos/myvideo.mp4" poster="path/poster.jpg">

              <div fallback>

                  <p>Your browser doesn’t support HTML5 video</p>

              </div>

              <source type="video/mp4" src="foo.mp4">

              <source type="video/webm" src="foo.webm">

          </video>



          <!-- 推薦 -->

          <amp-video width="400" height="300" src="http://www.domain.com/videos/myvideo.mp4" poster= "path/poster.jpg">

              <div fallback>

                  <p>Your browser doesn’t support HTML5 video</p>

              </div>

              <source type="video/mp4" src="foo.mp4">

              <source type="video/webm" src="foo.webm">

          </amp-video>


          三、圖片類


          1.圖片壓縮處理


          在移動端,通常要保證頁面中一切用到的圖片都是經過壓縮優化處理的,而不是以原圖的形式直接使用的,因為那樣很消耗流量,而且加載時間更長。


          2.使用較小的圖片,合理使用base64內嵌圖片


          在頁面使用的背景圖片不多且較小的情況下,可以將圖片轉化成base64編碼嵌入到HTML頁面或CSS文件中,這樣可以減少頁面的HTTP請求數。需要注意的是,要保證圖片較小,一般圖片大小超過2KB就不推薦使用base64嵌入顯示了。


          .class-name {

                 background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAALCAMAAABxsOwqAAAAYFBMVEWnxwusyQukxQudwQyZvgyhxAyfwgyxzAsUHQGOuA0aJAERGAFIXwSTugyEqgtqhghQZgUwQQIpOQKbuguVtQuKrAuCowp2kQlheghTbQZHWQU7SwVAVgQ6TgQlLwMeKwFOemyQAAAAVElEQVQI1y3JVRaAIAAF0UconXbvf5ei8HfPDIQQhBAAFE10iKig3SLRNN4SP/p+N08VC0YnfIlNWtqIkhg/TPYbCvhqdHAWRXPZSp3g3CWZvVLXC6OJA3ukv0AaAAAAAElFTkSuQmCC');

          }


          3.使用更高壓縮比格式的圖片


          使用具有較高壓縮比格式的圖片,如webp等。在同等圖片畫質的情況下,高壓縮比格式的圖片體積更小,能夠更快完成文件傳輸,節省網絡流量。


          <img src="http://cdn.domain.com/path/photo.webp" alt="webp格式圖片">


          4.圖片懶加載


          為了保證頁面內容的最小化,加速頁面的渲染,盡可能節省移動端網絡流量,頁面中的圖片資源推薦使用懶加載實現,在頁面滾動時動態載入圖片。


          <img data-src="http://cdn.domain.com/path/photo.jpg" alt="懶加載圖片">


          5.使用Media Query或srcset根據不同屏幕加載不同大小圖片


          在介紹響應式的章節中我們了解到,針對不同的移動端屏幕尺寸和分辨率,輸出不同大小的圖片或背景圖能保證在用戶體驗不降低的前提下節省網絡流量,加快部分機型的圖片加載速度,這在移動端非常值得推薦。


          6.使用iconfont代替圖片圖標


          在頁面中盡可能使用iconfont來代替圖片圖標,這樣做的好處有以下幾個:使用iconfont體積較小,而且是矢量圖,因此縮放時不會失真;可以方便地修改圖片大小尺寸和呈現顏色。但是需要注意的是,iconfont引用不同webfont格式時的兼容性寫法,根據經驗推薦盡量按照以下順序書寫,否則不容易兼容到所有的瀏覽器上。


          @font-face {

              font-family: iconfont;

              src: url("./iconfont.eot");

              src: url("./iconfont.eot?#iefix") format("eot"),

                   url("./iconfont.woff") format("woff"),

                   url("./iconfont.ttf") format("truetype");

          }


          7.定義圖片大小限制


          加載的單張圖片一般建議不超過30KB,避免大圖片加載時間長而阻塞頁面其他資源的下載,因此推薦在10KB以內。如果用戶上傳的圖片過大,建議設置告警系統,幫助我們觀察了解整個網站的圖片流量情況,做出進一步的改善。


          四、腳本類


          1.盡量使用id選擇器


          選擇頁面DOM元素時盡量使用id選擇器,因為id選擇器速度最快。


          2.合理緩存DOM對象


          對于需要重復使用的DOM對象,要優先設置緩存變量,避免每次使用時都要從整個DOM樹中重新查找。


          // 不推薦

          $('#mod .active').remove('active');

          $('#mod .not-active').addClass('active');


          // 推薦

          let $mod = $('#mod');

          $mod.find('.active').remove('active');

          $mod.find('.not-active').addClass('active');


          3.頁面元素盡量使用事件代理,避免直接事件綁定


          使用事件代理可以避免對每個元素都進行綁定,并且可以避免出現內存泄露及需要動態添加元素的事件綁定問題,所以盡量不要直接使用事件綁定。


          // 不推薦

          $('.btn').on('click', function(e){

              console.log(this);

          });


          // 推薦

          $('body').on('click', '.btn', function(e){

              console.log(this);

          });


          4.使用touchstart代替click


          由于移動端屏幕的設計,touchstart事件和click事件觸發時間之間存在300毫秒的延時,所以在頁面中沒有實現touchmove滾動處理的情況下,可以使用touchstart事件來代替元素的click事件,加快頁面點擊的響應速度,提高用戶體驗。但同時我們也要注意頁面重疊元素touch動作的點擊穿透問題。


          // 不推薦

          $('body').on('click', '.btn', function(e){

              console.log(this);

          });


          // 推薦

          $('body').on('touchstart', '.btn', function(e){

              console.log(this);

          });


          5.避免touchmove、scroll連續事件處理


          需要對touchmove、scroll這類可能連續觸發回調的事件設置事件節流,例如設置每隔16ms(60幀的幀間隔為16.7ms,因此可以合理地設置為16ms)才進行一次事件處理,避免頻繁的事件調用導致移動端頁面卡頓。


          // 不推薦

          $('.scroller').on('touchmove', '.btn', function(e){

              console.log(this);

          });


          // 推薦

          $('.scroller').on('touchmove', '.btn', function(e){

              let self = this;

              setTimeout(function(){

                  console.log(self);

              }, 16);

          });


          6.避免使用eval、with,使用join代替連接符+,推薦使用ECMAScript 6的字符串模板


          這些都是一些基礎的安全腳本編寫問題,盡可能使用較率的特性來完成這些操作,避免不規范或不安全的寫法。


          7.盡量使用ECMAScript 6+的特性來編程


          ECMAScript 6+一定程度上更加安全,而且部分特性執行速度更快,也是未來規范的需要,所以推薦使用ECMAScript 6+的新特性來完成后面的開發。


          五、渲染類


          1.使用Viewport固定屏幕渲染,可以加速頁面渲染內容


          一般認為,在移動端設置Viewport可以加速頁面的渲染,同時可以避免縮放導致頁面重排重繪。在移動端固定Viewport設置的方法如下。


          <!-- 設置viewport不縮放 -->

          <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">


          2.避免各種形式重排重繪


          頁面的重排重繪很耗性能,所以一定要盡可能減少頁面的重排重繪,例如頁面圖片大小變化、元素位置變化等這些情況都會導致重排重繪。


          3.使用CSS3動畫,開啟GPU加速


          使用CSS3動畫時可以設置transform: translateZ(0)來開啟移動設備瀏覽器的GPU圖形處理加速,讓動畫過程更加流暢。


          -webkit-transform: translateZ(0);

          -ms-transform: translateZ(0);

          -o-transform: translateZ(0);

          transform: translateZ(0);


          4.合理使用Canvas和requestAnimationFrame


          選擇Canvas或requestAnimationFrame等更的動畫實現方式,盡量避免使用setTimeout、setInterval等方式來直接處理連續動畫。


          5.SVG代替圖片


          部分情況下可以考慮使用SVG代替圖片實現動畫,因為使用SVG格式內容更小,而且SVG DOM結構方便調整。


          6.不濫用float


          在DOM渲染樹生成后的布局渲染階段,使用float的元素布局計算比較耗性能,所以盡量減少float的使用,推薦使用固定布局或flex-box彈性布局的方式來實現頁面元素布局。


          7.不濫用web字體或過多font-size聲明


          過多的font-size聲明會增加字體的大小計算,而且也沒有必要的。


          六、架構協議類


          1.嘗試使用SPDY和HTTP 2


          在條件允許的情況下可以考慮使用SPDY協議來進行文件資源傳輸,利用連接復用加快傳輸過程,縮短資源加載時間。HTTP 2在未來也是可以考慮嘗試的。


          2.使用后端數據渲染


          使用后端數據渲染的方式可以加快頁面內容的渲染展示,避免空白頁面的出現,同時可以解決移動端頁面SEO的問題。如果條件允許,后端數據渲染是一個很不錯的實踐思路。后面的章節會詳細介紹后端數據渲染的相關內容。


          3.使用Native View代替DOM的性能劣勢


          可以嘗試使用Native View的MNV開發模式來避免HTML DOM性能慢的問題,目前使用MNV的開發模式已經可以將頁面內容渲染體驗做到接近客戶端Native應用的體驗了。


          關于頁面優化的常用技術手段和思路主要包括以上這些,盡管列舉出很多,但仍可能有少數遺漏,可見前端性能優化不是一件簡簡單單的事情,其涉及的內容很多。大家可以根據實際情況將這些方法應用到自己的項目當中,要想全部做到幾乎是不可能的,但做到用戶可接受的原則還是很容易實現的。


          于此同時我們要清楚的是,在我們做到了優化的同時也付出了很大的代價,這也是前端優化的一個問題。理論上這些優化都是可以實現的,但是作為工程師我們也要明白懂得權衡。優化提升了用戶體驗,使數據加載更快,但是項目代碼卻可能打亂,異步內容要拆分出來,首屏的一個雪碧圖可能要分成兩個,頁面項目代碼維護成本成倍增加,項目結構也可能變得混亂。


          所以前期在設計構建、組件的解決方案時要解決好異步的自動處理問題。任何一部分優化都可以做得很深入,但不一定都值得,在優化的同時也要盡量考慮性價比,這才是我們作為一名前端工程師處理前端優化時應該具有的正確思維。

          藍藍設計www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 平面設計服務




          微信小程序知識體系梳理

          seo達人

          如果您想訂閱本博客內容,每天自動發到您的郵箱中, 請點這里 

          小程序介紹

          17年一月9號,小程序剛發布的時候,個人很幸運的成為第一批吃螃蟹的人,當然也是第一批采坑的人。

          小程序是基于微信的一種應用,使用微信自定義的組件,讓我們使用JavaScript的方式,達到匹配原生應用的效果。小程序的一大優勢就是,你只要有個微信,你就能搜索你所需要的點餐、買票、旅游等一些日常需求的小程序,而且——用完即毀、無需下載。

          小程序開發所需要的技能

          小程序是最適合前端開發人員,你所需的知識僅僅是JavaScript、css、html的基本知識,如果你有其他單頁面應用的開發經驗,那小程序會很快上手,但是這都不是必須的。

          小程序的知識體系的梳理

          項目整體架構

          app.js 小程序的啟動js文件。

          app.json 小程序的全局json配置文件。同時也可以進行pages配置、底部tab切換的配置等等。

          app.wxss 小程序的全局樣式。

          pages 小程序的相關頁面。在app.json中配置了pages,pages文件夾就會自動出現對應的頁面。

          pages

          js 是小程序的邏輯部分。 
          wxss 小程序的對應page的布局,也就是局部樣式。相當于web網頁的css。 
          wxml 頁面布局。相當于web網頁的html。 
          json 小程序的局部頁面配置。

          小程序路由

          1、push路由 
          wx.navigateTo({ 
          url:’/pages/index/index’ 
          });

          2、替換路由 
          wx.redirectTo({ 
          url:”/pages/index/index” 
          });

          3、路由回退 
          wx.navigateBack({ 
          delta: 1 
          });

          4、tab切換 
          wx.switchTab({ 
          url:’相關頁面路徑’ 
          });

          5、路由清理替換 
          wx.reLaunch({ 
          url:’新的頁面路徑’ 
          });

          小程序路由傳參

          wx.navigateTo({ 
          url: “/pages/index/index?id=”+inputValue 
          }); 
          就會把inputValue的值傳遞過去。在相應的界面的onLoad周期函數的options中接收。

          //index.js 
          onLoad: function(options){ 
          console.log(options.id); 
          }

          小程序界面交互(Toast、Modal)

          Toast分三種:sucess、loading、none; 
          Modal:title、content屬性是必須要的。 
          modal還有一些其他的屬性,比如確認按鈕的顯示。

          小程序page的生命周期

          onLoad——初始化加載一次 
          onReady——頁面初次渲染完成 
          onShow——監聽頁面顯示 
          onHide——監聽頁面隱藏 
          onUnload——監聽頁面卸載

          生命周期函數的本質:給開發人員一個觸發時機的暴露的接口。在這樣的時機下,我們可以做什么?

          小程序如何更改data

          vue中:this.message = ‘hello world’; 
          小程序中: 
          this.setData({ 
          message: ‘hello world’ 
          })

          小程序分享功能

          使用onShareAppMessage函數可以實現分享轉發功能。 
          onShareAppMessage: function(){ 
          return { 
          title:’圖吧同行’, 
          path:’/pages/index/index’, 
          desc:’描述信息’ 

          }

          登錄功能

          小程序的登錄是一個項目的核心邏輯。分為三步。

          第一步:wx.login,獲取code。 
          第二步:把code發送給我們的后臺服務器,得到openId。 
          第三步:服務器把openId返回給你。你就知道每次是哪一個用戶登錄了小程序。

          藍藍設計www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 平面設計服務


          關于placeholder();

          seo達人

          如果您想訂閱本博客內容,每天自動發到您的郵箱中, 請點這里 

          搜索框有一些提示信息比如“關鍵字”之類,不寫吧用戶可能不知道這個搜索框是用來做什么的,寫了吧點擊搜索之后默認就把這些提示信息提交給數據處理頁面處理去了,有點麻煩,而且也沒有必要再去數據庫查一次這個提示信息。

            可以用jquery 的插件 placeholder來解決這個問題,這個插件使用也很簡單,在頁面引入這個插件,    <script type="text/javascript" src="<%=basePath %>resources/scripts/jquery/jquery.placeholder.min.js"></script>(本人用的是miniui做的,所以引入的是jquery.placeholder.min.js)。

           在html中的輸入框中如此設置

          <div class="inputs">
                   <input id="u_id" name="u_id" type="text" placeholder="請輸入帳號"/>
           </div>
          <div class="inputs">
               <input id="u_pass" name="u_pass" type="password" placeholder="請輸入密碼"/>
          </div>

           js代碼:

          $(function(){
              $("input").placeholder();
              
              $("input").keydown(function(event) {  
                  //alert(event.keyCode);
                  if(event.keyCode==13){  
                      login();  //轉到登錄的js方法
                  }
              });
          });

           但是問題來了,firefox,IE下都能實這個效果,chrome和safari點擊后不會消失,得輸入東西之后才會消失。本人在CSS方面菜鳥一只,后來讓公司一位前段的同事去調試這個,最后在CSS里面加了一段:

          input:focus::-webkit-input-placeholder,textarea:focus::

          -webkit-input-placeholder{color:transparent;} 

          藍藍設計www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務


          學習解析XML(1)

          seo達人

          如果您想訂閱本博客內容,每天自動發到您的郵箱中, 請點這里

          什么是xml, xml有什么作用?
          XML 是獨立于軟件和硬件的信息傳輸工具
          • XML 指可擴展標記語言(EXtensible Markup Language)。
          • XML 是一種很像HTML的標記語言。
          • XML 的設計宗旨是傳輸數據,而不是顯示數據。
          • XML 標簽沒有被預定義。您需要自行定義標簽。
          • XML 被設計為具有自我描述性。
          • XML 是 W3C 的推薦標準。


          XML 和 HTML 之間的差異

          XML 不是 HTML 的替代。

          XML 和 HTML 為不同的目的而設計:

          • XML 被設計用來傳輸和存儲數據,其焦點是數據的內容。
          • HTML 被設計用來顯示數據,其焦點是數據的外觀。

          HTML 旨在顯示信息,而 XML 旨在傳輸信息



          xml的用途:

              

          XML 把數據從 HTML 分離

          XML 簡化數據共享

          XML 簡化數據傳輸

          XML 簡化平臺變更

          XML 使您的數據更有用

          XML 用于創建新的互聯網語言


          <?xml version="1.0" encoding="UTF-8"?> 聲明

          以及根元素 子元素 以及定義根元素結尾

          如例

          聲明

          <?xml version="1.0" encoding="UTF-8"?>

          根元素

          <note>

          子元素

          <to>Tove</to>

          <from>Jani</from>

          <heading>Reminder</heading>

          <body>Don't forget me this weekend!</body>

          </note>

          定義根元素結尾

          命名的規范

          所有的 XML 元素都必須有一個關閉標簽

          XML 標簽對大小寫敏感、

          XML 必須正確嵌套

          XML 屬性值必須加引號

          實體引用




          XML 以 LF 存儲換行

          在 Windows 應用程序中,換行通常以一對字符來存儲:回車符(CR)和換行符(LF)。

          在 Unix 和 Mac OSX 中,使用 LF 來存儲新行。

          在舊的 Mac 系統中,使用 CR 來存儲新行。

          XML 以 LF 存儲換行。

          藍藍設計www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 、平面設計服務

          暑期干貨!2017年8月前端開發者超實用干貨大合集

          資深UI設計者

          在過去的幾年當中,網絡上所流傳的各種設計和開發資源,在素質上有明顯的提升。其中有一些已經幾乎成為了設計師和開發者必備的工具,但是其中絕大多數由于其應用范疇的局限,或者傳播不夠廣,導致它們大多并廣為人知。將這些素材集中到一起,很大程度上是希望它們的目標用戶能夠明白,需要這些工具的時候,上哪兒找。

          這次的前端干貨合集內容也很齊全,仔細看看,總能找到幾款你所需要的。

          MuzzleApp

          暑期干貨!2017年8月前端開發者超實用干貨大合集

          資深UI設計者

          如果您想訂閱本博客內容,每天自動發到您的郵箱中, 請點這里

          在過去的幾年當中,網絡上所流傳的各種設計和開發資源,在素質上有明顯的提升。其中有一些已經幾乎成為了設計師和開發者必備的工具,但是其中絕大多數由于其應用范疇的局限,或者傳播不夠廣,導致它們大多并廣為人知。將這些素材集中到一起,很大程度上是希望它們的目標用戶能夠明白,需要這些工具的時候,上哪兒找。

          這次的前端干貨合集內容也很齊全,仔細看看,總能找到幾款你所需要的。

          MuzzleApp

          Muzzle 是之前 CodeKit 的開發者的新產品,是一款應用在macOS 平臺的應用,當你和別人共享屏幕的時候,它可以幫你關閉通知和其他的私密信息,避免尷尬。無論你共享屏幕時候的平臺是Skype、Google Hangouts 還是 Slack,它都能讓macOS 進入“免打擾”模式。

          Fractures

          Fractures 是一個CSS類 合集,可以幫你快速創建網頁原型。Fractures 是基于原子設計模式來構建的,樣式表被分割為小段。

          CSS DB

          CSS DB 能為你列舉出還在不斷開發中的CSS特性列表以及目前的狀態,讓你可以更好地使用CSS選擇器。

          Preact

          Apache 最近宣布禁止將 BSD+專利許可證分發給 ReactJS 和類似的項目,如果你的產品受到類似的專利許可證的影響,可以考慮 Preact 這樣的 ReactJS替代品。

          Pell

          Pell 是一款用來構建所見即所得編輯器的JavaScript 庫,默認情況下,它會帶有常見的富文本編輯器的按鈕。Pell 是使用ES6來構建,它不會像jQuery 那樣需要大量的依賴庫,體積小巧,可維護性強,還兼容 IE9。

          Markvis

          Markdown 在語法和功能上是有限制的,而Markvis 在它的基礎上增加了圖表的功能。

          Moment PHP

          Moment 是一款 PHP 庫,用來處理日期和時間,類似于 Moment.js 之于 JavaScript。這個庫的使用也很簡單,可以快速設置時區、時間和顯示方式。

          Tonik

          這是一款使用現代PHP來構建的Wordpress 新手主題,它充分利用了命名空間,自定義模板,自動加載器,WebPack 以及一大堆現代Web開發的優點。

          Awesome Guidelines

          這是一個包含了許多編程語言標準的列表,其中包含了C語言,JS,PHP,Ruby,甚至包括Visual Basic。這些標準能夠幫你的代碼保持簡潔、干凈。

          BotUI

          聊天機器人已經逐漸成為主流。這款 JS 庫能夠幫你構建對話式UI,這個庫比起傳統的“表單”體驗更加優秀。

          Reaction Commerce

          開源的內容管理系統這些年變化并不大,其中絕大多數都是基于PHP來構建的。

          TinyReset

          這是一款非常小巧的 CSS resetter,它可以作為 Eric Meyer 所創建的reset.css的替代品。

          Martinet

          Martinet 是一款用來構建靜態網站的命令行工具,其中包含了諸如 Webpack、TypeScript、Pug for templating、LESS和 NPM 這樣的現代工具。它的存在讓設計者不用擔心網站配置,只需要正常使用 Martinet 就能對網站進行調整。

          Billboard

          BillboardJS 是一款基于 D3.js 來構建的交互式數據可視化數據庫工具,它可以用來創建可視化的柱狀圖,餅圖,折線圖等。

          SVGI

          SVGI 是一款用來查找SVG元素和文件的命令行工具,安裝它之后,你可以采用svgi 命令來檢索 SVG 文檔的大小、元素、層次結構和節點列表。

          TimeStrap

          TimeStrap 是另外一個非常實用的開源平臺,它可以像 WordPress 一樣可以在任何地方運行和訪問的發票系統。對于喜歡自己控制而不希望使用外部服務來管理發票的用戶而言,這是一個很好的選擇。

          Slate

          Slate 是一款為API 文檔創建靜態網頁的工具,諸如 WooCommerce、Travis-、CoinBase甚至 NASA 都采用了這一工具。

          FontJoy

          FontJoy 是一款能夠生成大量有效字體組合的工具,點擊“Generate”按鈕就能生成許多新的字體組合。有趣的地方在于,這款工具還有具備深度學習的功能。

          CoolHue

          毫無疑問漸變色再一次回歸主流,而CoolHue 是另外一款非常優秀的漸變色生成工具。

          FrontPress

          FrontPress 是一款前端框架,可用來控制 WP-API 和 AngularJS。如果你想創建一款用于 WordPress 的內容管理系統,可以從 FrontPress 著手。

          藍藍設計www.syprn.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 平面設計服務

          面向未來的 CSS Variable

          資深UI設計者

          CSS Variable 即CSS變量,聊CSS變量之前,我想先來說說Sass和Less,還有Stylus,它們都是目前使用較為普遍的三款CSS預處理框架,我們為什么要使用它們呢,因為它們都可以讓你在CSS中方便的使用變量、簡單的程序邏輯、函數等在編程時使用的一些基本技巧,這些框架對于這種CSS預處理的技術已經非常成熟,可以讓你的CSS代碼變的更加簡潔、便于維護、在編寫的時候也無需考慮代碼的兼容性。

          用這個方法,輕松提高H5動畫的開發效率!

          資深UI設計者

          Janilychen:以往做一些H5的運營項目,都是動畫設計師使用Animate cc(原來的Flash)先設計好動畫原型,然后交給我們UI開發來實現。做過動畫開發的童鞋都知道動畫開發都是比較耗費時間精力的,而且還要高質量的還原動畫設計師設計好的動畫,來回溝通成本也非常高。

          那有沒有一種的方法來改善這種流程,提高開發效率的同時還能完成高品質的動畫呢?

          經過一段時間的摸索,發現AnimateCC(就是原來的Flash)可以導出canvas動畫,而且是基于createjs這個開發輕量級游戲的js庫的,非常適合用來做移動端的一些h5動畫。不僅縮短制作動畫所需要的時間。同時它也是一個可視化的IDE,不需要編寫代碼就可以完成高品質的動畫效果;還可以通過Javascript,為動畫效果添加交互性。

          跟著電臺動起來 如何設計跑步的垂直場景

          資深UI設計者

          用戶真的有通過電臺App來跑步的需求嗎?

          這是我們在規劃這個產品功能時的第一個問題。即使在音樂類軟件都已經上線了跑步相關功能的當下,我們依然發問——真的有人,通過電臺App來跑步嗎?

          如果僅僅是針對現在電臺類App,那需求一定是微乎其微,不同于音樂統一的內容屬性,電臺類內容屬性太豐富——音樂時間短,小說時間長;相聲很搞笑,新聞很嚴肅······這些內容決定了他們天然就不能像音樂一樣隨機重組。

          有時候我們需要退一步來思考需求。

          如何打造有溫度的H5動畫

          資深UI設計者

          2016年末,各路APP也紛紛展開一輪輪的數據廝殺,從不同的視角闡述過去一年的精彩故事。而坐擁龐大用戶數據的QQ空間,在這個既難忘又不舍的2016年,用戶的故事將會被如何演繹,在寒冬帶給用戶怎樣的溫暖回憶呢?

          日歷

          鏈接

          個人資料

          藍藍設計的小編 http://www.syprn.cn

          存檔

          亚洲va欧美va天堂v国产综合