1
내 웹 사이트 인덱스에 무한 스크롤을 사용하고, 40 개체가있는 json을 얻기 위해 아약스 요청을 사용합니다. 그런 다음 자바 스크립트 루프를 사용하여 추가합니다. 그러나 얼마 동안은 약간 느려집니다.무한 스크롤로 아약스를 사용하여 성능을
그래서, 내 질문은 : 서버 쪽에서 html 블록을 생성하고 jquery를 사용하여 append가 json 배열을 가져 와서 반복하는 것보다 더 효율적일 수 있습니다.
는 당신 미안 감사 내 나쁜 영어$.ajax({
url: oScroll.route,
type: 'post',
data: {current: $('.item').size(), 'type': type},
//Succès de la requête
success: function(oData) {
if (oData.status == "success") {
oScroll.getHtml(oData);
oScroll.load = false;
} else {
// $('#my-special-modal').hide();
oScroll.load = false;
}
}
});
getHtml: function(oData) {
var items = [];
for (var index in oData.results) {
var item = oData.results[index];
var html;
html = '<article class="item opinion" >';
html += '<div class="header-opinion">';
html += '<div class="picto-cat"></div>';
html += '<div class="name-cat">';
html += item.shop_name;
html += '<br />';
html += '<div class="cat">';
html += item.category_name;
html += '</div>';
html += '</div>';
html += '</div>';
html += '<div class="average-stars">';
html += '<p>';
html += Number(item.opinion_avg).toFixed(1) + ' - ' + item.opinion_count + ' avis';
html += '</p>';
html += '</div>';
html += '<div>';
html += '<a href="'+Routing.generate('fo_shop_show', {iId:item.shop_id})+'"><img src="/images/shops/boxes/' + item.shop_image + '" /></a>';
html += '</div>';
html += '<div class="place">';
html += item.shop_city;
html += '</div>';
html += '<div class="row status-user">';
if (item.opinion_message == 'islike') {
html += item.user_firstname + ' ' + item.user_lastname[0] + '. a aimé ';
} else {
html += item.user_firstname + ' ' + item.user_lastname[0] + '. a noté ' + Number(item.opinion_rating/2).toFixed(1);
html += '</div>';
html += '<div class="row message-user">';
if (item.opinion_message.length > 217) {
html += item.opinion_message.substr(0, 217) + '...';
} else {
html += item.opinion_message;
}
html += '</div>';
}
html += '<div class="footer-opinion">';
html += '<div class="picto-user"><img src="images/user/avatars/'+item.user_avatar+'" /></div>';
html += '<div class="message-date">';
html += '<time><p><img src="/images/pictos_actions/clock.png"/>';
html += item.opinion_date+'</p></time>';
html += '</div>';
html += '<div class="picto-action"></div>';
html += '</div>';
html += '</article>';
items.push(html);
}
var $newElems = $(items.join(''));
container.append($newElems);
$newElems.css({opacity: 0});
$newElems.imagesLoaded(function() {
// show elems now they're ready
$newElems.css({opacity: 1});
container.masonry('appended', $newElems, true);
});
}
MVC 응용 프로그램을 사용하고 있습니까? – Dinesh
예, symfony2를 사용하고 있습니다. 나는 ajax를 사용하여 json 배열 (40 개의 json 객체 포함)을로드합니다. 그런 다음 html div를 생성하기 위해 반복합니다. 그리고 마지막으로, 나는 html을 페이지에 넣었다. 하지만 느려질 수 있습니다. 따라서 서버에서 html을 생성하고 반환하는 것이 더 효율적인 지 묻습니다. 그런 다음 페이지에 추가하십시오. – tannana
내 게시물을 편집했습니다. 감사. – tannana