今日小結—304狀態碼,數組去重

304的具體實現(是對客戶端有緩存狀況下的一種響應

客戶端在請求一個文件的時候,發現本身緩存的文件有 Last Modified ,那麼在請求中會包含 If Modified Since ,這個時間就是緩存文件的 Last Modified 。所以,若是請求中包含 If Modified Since,就說明已經有緩存在客戶端。服務端只要判斷這個時間和當前請求的文件的修改時間就能夠肯定是返回 304 仍是 200 。
所以,對於動態頁面作緩存加速,首先要在 Response 的 HTTP Header 中增長 Last Modified 定義,其次根據 Request 中的 If Modified Since 和被請求內容的更新時間來返回 200 或者 304 。雖然在返回 304 的時候已經作了一次數據庫查詢,可是能夠避免接下來更多的數據庫查詢,而且沒有返回頁面內容而只是一個 HTTP Header,從而大大的下降帶寬的消耗,對於用戶的感受也是提升。當這些緩存有效的時候,經過 Fiddler 或HttpWatch 查看一個請求會獲得這樣的結果:數據庫

第一次訪問 200
    按F5刷新(第二次訪問) 304
    按Ctrl+F5強制刷新 200

正則實現QQ號匹配

var reg=/^\d{5,10}$/;  //d表示任意字符

從一篇文章中找出出現頻率最多詞

先數組去重,再將重複的字符做爲參數傳入函數,與數組中的字符進行比較,相同則+1
數組去重:數組

  • 雙層循環,外層循環元素,內層循環時比較值。若是有相同的值則跳過,不相同則push進數組。
  • 利用splice直接在原數組進行操做。雙層循環,外層循環元素,內層循環時比較值,值相同時,則刪去這個值。注意點:刪除元素以後,須要將數組的長度也減1.
  • Array.prototype.distinct = function (){
               var arr = this,
                i,
                obj = {},
                result = [],
                len = arr.length;
               for(i = 0; i< arr.length; i++){
                if(!obj[arr[i]]){ //若是能查找到,證實數組元素重複了
                 obj[arr[i]] = 1;
                 result.push(arr[i]);
                }
               }
               return result;
          };
  • 運用遞歸的思想,先排序,而後從最後開始比較,遇到相同,則刪除。
相關文章
相關標籤/搜索