如何预加载JSONlink?
How to preload JSON link?
我有一个函数需要调用 link(JSON 格式),事实是我希望能够预加载此 link 以平滑并减少调用函数时的运行时间。
onSelectionChanged: function (selectedItems) {
selectedItems.selectedRowsData.forEach(function(data) {
if(data) {
colorMe(data.target)
}
});
}
function colorMe(item){
globalItem = item;
request('http://blablabla/?format=json',findMaterial);
};
function findMaterial(data){
jq310.each(data, function(table) {
if (data[table].identifier == globalItem){
globalData = data[table]
request('http://another-blablabla/?format=json',findMatchArea);
};
});
};
function findMatchArea(areas){
jq310.each(areas, function(area) {
blablabla
我构建的请求函数只是查看 link 是否已被调用,因此如果为真则重新加载它。并将数据从 link 发送到被调用函数。
如果您要加载静态 json 文件,您应该考虑将其加载到文件的顶部。为此,您应该将数据存储在这样的全局变量中:
let datas;
request('http://blablabla/?format=json', (data) => {
datas = data
});
onSelectionChanged: function (selectedItems) {
selectedItems.selectedRowsData.forEach(function(data) {
if(data) {
globalItem = data.target;
findMaterial();
}
});
}
function colorMe(item){
globalItem = item;
};
function findMaterial(){
const data = datas;
jq310.each(data, function(table) {
if (data[table].identifier == globalItem){
globalData = data[table]
request('http://another-blablabla/?format=json',findMatchArea);
};
});
};
我终于找到了正确的方法,这里是:
var mylink = 'https://fr.wikipedia.org/wiki/JavaScript';
function preloadURL(link){
var xhReq = new XMLHttpRequest();
xhReq.open("GET", link, false);
xhReq.send(null);
var jsonObject = JSON.parse(xhReq.responseText);
return jsonObject;
};
jsonObjectInv = preloadURL(mylink);
我只是指向我的 json 变量来解析它(真的更快)
function colorMe(item){
globalItem = item;
findMaterial(jsonObjectInv);
};
问题已解决
我有一个函数需要调用 link(JSON 格式),事实是我希望能够预加载此 link 以平滑并减少调用函数时的运行时间。
onSelectionChanged: function (selectedItems) {
selectedItems.selectedRowsData.forEach(function(data) {
if(data) {
colorMe(data.target)
}
});
}
function colorMe(item){
globalItem = item;
request('http://blablabla/?format=json',findMaterial);
};
function findMaterial(data){
jq310.each(data, function(table) {
if (data[table].identifier == globalItem){
globalData = data[table]
request('http://another-blablabla/?format=json',findMatchArea);
};
});
};
function findMatchArea(areas){
jq310.each(areas, function(area) {
blablabla
我构建的请求函数只是查看 link 是否已被调用,因此如果为真则重新加载它。并将数据从 link 发送到被调用函数。
如果您要加载静态 json 文件,您应该考虑将其加载到文件的顶部。为此,您应该将数据存储在这样的全局变量中:
let datas;
request('http://blablabla/?format=json', (data) => {
datas = data
});
onSelectionChanged: function (selectedItems) {
selectedItems.selectedRowsData.forEach(function(data) {
if(data) {
globalItem = data.target;
findMaterial();
}
});
}
function colorMe(item){
globalItem = item;
};
function findMaterial(){
const data = datas;
jq310.each(data, function(table) {
if (data[table].identifier == globalItem){
globalData = data[table]
request('http://another-blablabla/?format=json',findMatchArea);
};
});
};
我终于找到了正确的方法,这里是:
var mylink = 'https://fr.wikipedia.org/wiki/JavaScript';
function preloadURL(link){
var xhReq = new XMLHttpRequest();
xhReq.open("GET", link, false);
xhReq.send(null);
var jsonObject = JSON.parse(xhReq.responseText);
return jsonObject;
};
jsonObjectInv = preloadURL(mylink);
我只是指向我的 json 变量来解析它(真的更快)
function colorMe(item){
globalItem = item;
findMaterial(jsonObjectInv);
};
问题已解决