細節總結

 1:如何檢測一個變量是字符串?如何檢測爲對象類型呢?javascript

複製代碼
1:使用typeOF檢測字符串
var str; alert(typeOf str) 2:給測試變量加上一個空白字符,而後與測試變量作全等判斷,就能夠得出這個變量是不是字符串。
<script type="text/javascript">
  var str='ss';
  var stt=str+'';
  alert(str==stt); //輸出爲真
</script
複製代碼

    2:對於頁面加載緩慢,如何進行優化,解決途徑是什麼css

    我是先講頁面加載緩慢是那些緣由形成的,好比:前端

    A:後端的問題。java

        通常網頁第一個請求是動態請求的機率比較大,若是這個請求特別耗時,那確定不是前端的責任。數據庫

   B:請求過多編程

       數一下瀑布圖總共有多少行,onload以前若是有幾百行,那麼請求就太多了。一會兒加載那麼多資源形成擁擠。css,後端

   js該合併的合併,圖標該精靈的精靈,使用字體圖標也很好。還有,有些不重要的東西不用放到onload以前加載,緩存

   放到後面也同樣。  網頁發請求數越少越好。服務器

      好比:HTML的話能夠從script標籤這裏說,好比動態加載script標籤,異步加載script標籤(IE:defer、標準:async)網絡

   還有就是css阻塞和js阻塞問題,將script標籤放置於</body>以前就能夠,行爲層與變現層進行分開。

  C:某一個部分請求的時間花費過長。

     請求比其餘請求的時間大出一個數量級,這種狀況通常是由於某一個資源太慢了,致使網頁總體變慢,資源慢的緣由多是:

     a)資源在第三方站點上,他們很慢;

     b)這個資源太大了;

     c)這個 資源使用的域名有問題。

  D:網絡問題

當網頁加載很慢的時候,應如何分析其緣由並解決問題?

  

  仔細看一下一個單獨的http請求,他們會分爲好幾段,分別是域名解析、創建鏈接、發送請求、等待響應和接收數據幾個階段。
理論上域名解析和創建鏈接應該佔用的時間很小纔對,主要的時間應該用在後面幾個階段上。上圖中,淺灰色和灰色分別表明域名解析和創建鏈接。
能夠看出這兩個請求中花費在網絡層上的時間太長了,超過總時間的一半還要多。網絡層時間過長除了可能和底層網絡有關以外,還可能和站點的服務端性能有關(後端RD的事情哦)。
固然,若是這種狀況發生在向第三方站點發送的請求上(實際上也常常發生),建議取消或者更換某些站點功能從而避免這樣的請求了。

 E:接收數據時間過長

     上面說了,http請求的大部分時間應該花在後面幾個階段,好比等待響應和接收數據。可是,若是接收數據的時間太長了

 長到數百毫秒甚至以秒計算的時候。那也是有問題的。這種狀況通常是由於下載的內容過重了,例如大圖片、大腳本等。 

 這類問題可使用GZIP壓縮、圖片壓縮或者JS/CSS的minify等 手段來解決。

  還有像CSS Sprites,合併CSS文件等方案。

 F: js阻塞請求
     當網頁加載很慢的時候,應如何分析其緣由並解決問題?
     
      圖中兩個連續的請求之間出現了一個很大的空隙,爲啥會出現這個空隙呢?是由於寫的js性能有問題,解析執行js花了很
長時間,致使這段時間的資源加載都被阻塞住了。
 
G: 若是以上都沒有
   當網頁加載很慢的時候,應如何分析其緣由並解決問題?
    翻看每一個http請求,仔細研究每一個請求頭響應頭,看看是否是沒有設置緩存啦,圖片優化的不夠好之類的。能夠先找個工具
分析一下,好比: http://speed.mmtrix.com/,問題一目瞭然。
 
    
 
H:採用CDN託管
    CDN的全稱是Content Delivery Network,即內容分發網絡。CDN的通俗理解就是網站加速,CPU均衡負載,能夠解決
跨運營商, 跨地區,服務器負載能力太低,帶寬過少等帶來的網站打開速度慢等問題。
    CDN的基本思路是 儘量避開互聯網上有可能影響 數據傳輸速度和穩定性的瓶頸和環節,使內容傳輸的更
快、更穩定。經過在網絡各處放置節點服務器所構成的在現有的互聯網基礎之上的一層智能虛擬網絡。
    CDN 系統可以實時地根據網絡流量和各節點的鏈接、負載情況以及到用戶的距離和響應時間等綜合
信息將用戶的 請求從新導向離用戶最近的服務節點上。 其目的是使用戶 可就近取得所需內容,解決
 Internet網絡擁擠的情況,提升用戶訪問網站的響應速度。
  
M:利用緩存方案
   服務端緩存是經過將相同數據保存下來,當訪問用戶請求相同內容時,再也不從新去數據庫查詢數據,而是將以前保存在
服務器的數據響應給用戶這樣就加快了網站頁面加載速度,可是臨時保存會佔用部分服務器資源。其本質是經過空間換取
時間,提升網頁加載速度。頁面緩存指的是將用戶請求過的頁面完整保存下來,有相同請求時直接響應給用戶,此方式數
據量是最大的; 頁面部分緩存是指輸出緩存頁面的某些部分,而不是緩存整個頁面內容。

  實現頁面部分緩存有 兩種機制:

  第一種:對用戶控件進行緩存配置

     此種是將頁面中須要緩存的部分置於用戶控件(.ascx文件)中,而且爲用戶控件設置緩存功能

(包含用戶控件的ASP.NET頁面可設置也可不 設置緩存)。

     這就是一般所說的「控件緩存」。

     主要包括如下3種方法:

     一:使用@ OutputCache指令以聲明方式爲用戶控件設置緩存功能,

     二:在代碼隱藏文件中使用PartialCachingAttribute類設置用戶控件 緩存;

     三:使用ControlCachePolicy類以編程方式指定用戶控件緩存設置。

  第二種:「緩存後替換」的方法。

 該方法與控件緩存正好 相反,將頁面中的某一部分設置爲不緩存,所以,儘管緩存了整個頁面,

可是當再次請求該頁時,將從新處理那些沒有設置爲緩存的內容。

相關文章
相關標籤/搜索