ホームページ  >  記事  >  ウェブフロントエンド  >  JS を使用してフロントエンド キャッシュを実装する

JS を使用してフロントエンド キャッシュを実装する

一个新手
一个新手オリジナル
2017-09-21 10:01:461722ブラウズ

JS を使用してフロントエンド キャッシュを実装する


フロントエンド ブラウザでは、最初のリクエスト中に一部のデータ (データ ディクショナリ内のデータなど) を取得して js オブジェクトに保存できます。後で必要になったときに使用されます。毎回サーバーにリクエストする必要はありません。ドロップダウン ボックスにデータを入力するためにデータ ディクショナリを頻繁に使用するページの場合、このアプローチによりサーバーへのアクセスが大幅に削減されます。この方法は、iframe を使用したフレームで特にうまく機能します。

具体的な実装アイデアと方法:

cache.js ファイルを作成します:

1. フロントエンド ページ、フロントエンド キャッシュから一度に取得する必要があるデータを定義し、これらを保存するオブジェクトを定義します。データ:

/**
 * 定义需要在用户登录的时候获取到本地的数据字典类别 */var clsCodes = {clsCodes :
        [BOOL,
         STATUS,
         USER_TYPE,
         REPORT_STATUS
     ]
}; 
/**
 * 获取数据字典到本地 */var dicts;

2. フロントエンド ページ、バックグラウンド インターフェイスを呼び出してデータを取得し、それをローカル キャッシュ オブジェクト (dict) に保存する関数を定義します。

function getDicts() {
    $.post(getContextPath() + /api/sys/getDictList,            clsCodes,            function(resultBean, status, xhRequest) {                if (resultBean.data != undefined) {
                    dicts = resultBean.data;
                }
            }, 
            'json');
}

メインページの読み込み時にこのメソッドを呼び出してデータを一括取得してキャッシュします。このようにして、将来同じデータが必要になった場合、ローカル オブジェクトの辞書から直接取得できます。

バックエンド コントローラー:

3. データを取得してフロントエンドに返すフロントエンド リクエストに従ってデータベースにクエリ (または次の例のようにサーバー キャッシュにクエリ) するインターフェイスを定義します:

/**
 * 根据多个分类编号获取多个字典集合
 * @param clsCodes
 * @return {{clsCode : {code1:name1,code2:name2...}}, ...} */@SuppressWarnings({ unchecked, rawtypes })
@ResponseBody
@RequestMapping(getDictList)
public ResultBean getDictList(@RequestParam(value = clsCodes[], required = true) String[] clsCodes) {
    ResultBean rb = new ResultBean();
     
    Map<string, string="">> dictCache = (Map<string, string="">>) CacheManager.getInstance().get(CacheConstants.DICT);
    Map dictMap = new LinkedHashMap<>(); //使用LinkedHashMap保证顺序
 
    if(dictCache != null){        
    for(String  clsCode: clsCodes){
            dictMap.put(clsCode, dictCache.get(clsCode));
        }
    }else{
        rb.setMessage(缓存中拿不到字典信息!);
        rb.setSuccess(false);
    }
     rb.setData(dictMap);    return rb;
}</string,></string,>

以上がJS を使用してフロントエンド キャッシュを実装するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。