今天同事遇到了一個比較奇怪的問題,使用layui中的table的模塊編寫完成以後,開始對條件查詢進行測試緩存
條件中有一個選擇框,其中包括請選擇,已完結和未完結三個值測試
出現的問題:選擇已完結以後能夠查詢到正確結果,而後選擇 ‘請選擇’選項時,查詢出的結果仍是以完結的結果ui
選擇未完結以後能夠查詢到正確結果,而後選擇 ‘請選擇’選項時,查詢出的結果仍是未完結的結果spa
通過同事打斷點,我發如今選擇‘請選擇’的時候,請求的參數爲空(空集合,沒有任何條件)對象
以下代碼所示table
table.render({page: {curr: 1 //從新從第 1 頁開始
},where: {}});
以上代碼改爲table.render({page: {curr: 1 //從新從第 1 頁開始
},where: {'end':''}});以後能夠正常使用
能夠的緣由(猜測):每次調用where傳入參數後,先於上一次的查詢條件進行比較,若是對象屬性有相同的key,則將當前的值替換上一次條件的值,在執行本次的查詢,若是上一次查詢的對象屬性中的key在本次的條件查詢的where中沒有的話,使用上一次的對象屬性中的值從而產生緩存的效果,而這種緩存可能形成查詢的錯誤