JSON对象(如何最初不在DOM上加载整个对象)
JSON Object (how to not load the entire object on DOM initially)
所以我正在读取一个本地json文件,该文件由{[Object,Object,Object….]}组成我正在使用
$.getJSON('products.json', function (pdata) {
for (var i = 0; i < pdata.data.length; i++) {
AppendtoDom(pdata.data[i]);
}
上面的代码读取json对象并附加到DOM,但我最初希望一次只加载100个对象,并在滚动时继续附加。
假设大约有1200个物体。我该怎么做?
到目前为止我的实施
$(function(){
loadData();
});
function loadData(){
$.getJSON('products.json', function (pdata) {
var i = 0;
function addtoDom(num){
var limit = Math.min(i + num, pdata.data.length);
for(; i < limit; i++){
getInformation(pdata.data[i]);
}
}
addtoDom(100);
$('.content').jscroll({
callback: addtoDom(100)
});
});
}
function getInformation(obj){
var content = "";
for (var i = 0; i < 4; i++) {
content += '<li>';
content += "<img src='" + obj.imageUrl + "' style='width:200px;height:200px'/>";
content += '<div class="productName">' + obj.fullName + "</div>";
content += '<div class="price">Price: ' + obj.price + "</div>";
content += '</li>';
}
$("<ul class= 'view'>" + content + "</ul>").appendTo('.content');
}
我在如何在DOM 中实现无限滚动中问过类似的问题
您可以将从Ajax调用中返回的所有对象放入一个持久变量中,将第一个100添加到DOM中,保留到目前为止添加的数量的计数器,然后在滚动到某个点时,再添加100,再加100,依此类推。
$.getJSON('products.json', function (pdata) {
var i = 0;
function addMore(num) {
var limit = Math.min(i + num, pdata.data.length);
for (; i < limit; i++) {
AppendtoDom(pdata.data[i]);
}
}
// add the first 100
addMore(100);
// then set up whatever scroll detection you want here and
// when you decide that it has scrolled enough to add some more
// you just call addMore(100) again
});
在您对上述思想的具体实现中,您存在一个实现错误。您必须为回调传递一个函数引用,因此更改如下:
$('.content').jscroll({
callback: addtoDom(100)
});
到此:
$('.content').jscroll({
callback: function() {addtoDom(100);}
});
将JSON分配给一个变量,并根据需要动态呈现它们。
var json;
$.getJSON('products.json', function (pdata) {
JSON = pdata;
};
// Scheduling logic
AppendtoDom(json[i]);
相关文章:
- ThreeJS访问加载的obj模型中的对象
- 正在加载具有相同功能的多个对象
- 如何使用amcharts中的dataloader将对象加载为JSON中的数据字段
- 修改角度阵列对象加载
- 从表单中派生要使用javascript对象加载的图像路径
- 三.js 三的错误.对象加载器
- 将 Json 对象加载到 javascript 中,然后使用字段
- 从本地 json 对象加载数据的灵活网格
- 将本地 JSON 对象加载到网格中的 extjs
- AngularJS - ng-show 在对象加载时显示内容
- three.js:在着色器材质中使用纹理,该材质添加到由对象加载器加载的对象中
- 如何在QueryParse.com之后将所有对象加载到数组中
- 如何使用javascript将Yii2对象加载到输入中
- 如何传递存储中的数组或对象.加载({params:{}})
- 将数据从JSON对象加载到数组中
- 如何获取事件的wordpress's oEmbed对象加载在TinyMCE
- 对象加载在不同的位置每次我刷新页面- Three.js - OBJMTLloader
- 如何从变量,对象加载JSON
- 在THREE.js中取消将对象加载到场景中
- Javascript:如何在没有jQuery或AJAX的情况下将JSON对象加载为文件