キャッシュプロキシ
繰り返し動作のために、プロキシキャッシュをキャッシュの形で使用することができる(知識のプロキシモードを、私は別の記事を見ることができるデザインパターン-プロキシモード)同じページに対して、ページングクエリを、私たちは繰り返したくはありませんもし存在していないときに、オブジェクトへのAjaxリクエストのバックキャッシュの使用は、直接入手キャッシュがある場合には、すべてのAJAX後の要求は、我々がプロキシオブジェクトをキャッシュ使用することができます。この時間は非常に消費性能です。
ページングクエリの最適化
アプリケーションプロキシキャッシュのAjaxの理由は、それが、要求の以下のカプセル化、要求モジュールは、コールバックや約束を使用する、非同期AJAXaxios
function getArticle(currentPage,pageSize){
return Http.mGet('/getArticle',{currentPage,pageSize}).then(e=>Promise.resolve(e.data));
}
export const proxyGetArticle = (function(){
const caches = {};
return async function(currentPage,pageSize){
const cache = Array.prototype.join.call(arguments,',');
// console.log(caches)
if(cache in caches){
return caches[cache];
}
await
getArticle(currentPage,pageSize).then(res=>{
Promise.resolve(caches[cache] = res)
})
// await
return caches[cache];
}
})()
、イベントループが原因调用时多次调用需要使用await
で、次のreact-hook
アプリケーション
useEffect(() => {
async function fetchData(){
const List = await proxyGetArticle(currentPage,pageSize)
updateBlogList(data);
}
fetchData()
}, [currentPage]);