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)網絡
C:某一個部分請求的時間花費過長。
請求比其餘請求的時間大出一個數量級,這種狀況通常是由於某一個資源太慢了,致使網頁總體變慢,資源慢的緣由多是:
a)資源在第三方站點上,他們很慢;
b)這個資源太大了;
c)這個 資源使用的域名有問題。
D:網絡問題
仔細看一下一個單獨的http請求,他們會分爲好幾段,分別是域名解析、創建鏈接、發送請求、等待響應和接收數據幾個階段。
理論上域名解析和創建鏈接應該佔用的時間很小纔對,主要的時間應該用在後面幾個階段上。上圖中,淺灰色和灰色分別表明域名解析和創建鏈接。
能夠看出這兩個請求中花費在網絡層上的時間太長了,超過總時間的一半還要多。網絡層時間過長除了可能和底層網絡有關以外,還可能和站點的服務端性能有關(後端RD的事情哦)。
固然,若是這種狀況發生在向第三方站點發送的請求上(實際上也常常發生),建議取消或者更換某些站點功能從而避免這樣的請求了。
E:接收數據時間過長
上面說了,http請求的大部分時間應該花在後面幾個階段,好比等待響應和接收數據。可是,若是接收數據的時間太長了
長到數百毫秒甚至以秒計算的時候。那也是有問題的。這種狀況通常是由於下載的內容過重了,例如大圖片、大腳本等。
這類問題可使用GZIP壓縮、圖片壓縮或者JS/CSS的minify等 手段來解決。
還有像CSS Sprites,合併CSS文件等方案。
實現頁面部分緩存有 兩種機制:
第一種:對用戶控件進行緩存配置
此種是將頁面中須要緩存的部分置於用戶控件(.ascx文件)中,而且爲用戶控件設置緩存功能
(包含用戶控件的ASP.NET頁面可設置也可不 設置緩存)。
這就是一般所說的「控件緩存」。
主要包括如下3種方法:
一:使用@ OutputCache指令以聲明方式爲用戶控件設置緩存功能,
二:在代碼隱藏文件中使用PartialCachingAttribute類設置用戶控件 緩存;
三:使用ControlCachePolicy類以編程方式指定用戶控件緩存設置。
第二種:「緩存後替換」的方法。
該方法與控件緩存正好 相反,將頁面中的某一部分設置爲不緩存,所以,儘管緩存了整個頁面,
可是當再次請求該頁時,將從新處理那些沒有設置爲緩存的內容。