大きなjstreeを保持するpopup.htmlを持つ拡張機能があります。私がやりたいことは次のとおりです。ブラウザ ウィンドウが開いた後、ユーザーが初めてポップアップをクリックすると、jstree への入力に使用されるデータが取得されます。ポップアップの後続のクリックでは、生成された html が保持されるため、ツリーを生成する必要がなくなります。
つまり、jstree を 1 回だけ生成し、ポップアップにその html の内容をメモリに保持させたいと考えています。これは実行可能ですか?
popup.js コードは次のとおりです。
$(document).ready(function() {
var backgroundPage = chrome.extension.getBackgroundPage();
function logIt(text) {
backgroundPage.console.log(text);
}
function buildUI(feedData) {
$('#jstree').jstree({
'core': {
'animation': 0
},
'json_data': feedData,
'themes': {
'theme': 'classic',
'dots': false,
'icons': true
},
'types': {
'valid_children': [ 'folder' ],
'types': {
'folder': {
'valid_children': [ 'file' ],
'max_depth': 1
},
'file' : {
'valid_children': [ 'none' ],
'icon': { 'image': 'images/file.png' }
}
}
},
'plugins': [
'json_data',
'themes',
'sort',
'types',
'search'
]
})
.on('click', '.jstree-leaf', function() {
logIt($(this).text());
});
}
chrome.extension.sendRequest({'action': 'fetchFeed'}, function(response) {
var output = JSON.parse(response);
buildUI(output.data);
});
});