私は電子商取引ウェブサイトの無限のスクロールを開発しました。すべてがうまくいっていますが、いくつかのページには100以上の製品があります。顧客のために本当に面倒です。作業履歴付き無限スクロールjQueryに戻る
私はreplaceState
機能を試してみました - 私は、顧客のは、帰国後に使用するつもりだったことを、上から現在位置、およびoffset
を保存し、URLに#
後jSON
文字列を保存しました。それはひどかった。 iOSの最新バージョンでは、ChromeとSafariはまったく機能しませんでしたが、一部のWindows 7ブラウザでは地獄のように遅れていました。
とにかく、誰でもHistory.js
を試してみましたか?それは同じ**の痛みですか?他の方法はどうですか?私はoffset
をクッキーとして設定しようと考えていましたが、ブラウザはAJAXがすべての製品を読み込むまで待ちますか?
<script type="text/javascript">
$(function() {
// LazyLoad
function LazyLoad(collection, main, category, sort, offset, limit) {
window.ajax = false;
$.ajax({
type: "GET",
url: "http://daytona.bg/includes/ajax.php",
data: "collection=" + collection + "&main=" + main + "&category=" + category + "&sort=" + sort + "&offset=" + offset + "&limit=" + limit,
success: function(result) {
$.each(JSON.parse(result), function(key, value) {
$("#products").append('<div id="products-item">PRODUCT STUFF HERE</div>');
});
window.ajax = true;
}
});
}
// Globals
window.ajax = true;
// Variables
var collection = 'fall-winter';
var main = 'women';
var category = 'jackets';
var sort = 'new';
var offset = 0;
var limit = 12;
// OnLoad
$(window).load(function() {
LazyLoad(collection, main, category, sort, offset, limit);
});
// OnScroll
$(window).scroll(function() {
if($(window).scrollTop() >= ($(document).height() - $(window).height() - 900) && window.ajax == true) {
LazyLoad(collection, main, category, sort, offset +=12, limit);
}
});
});
</script>
はこちらHMからクールな例です:
http://www2.hm.com/bg_bg/jeni/pazaruvane-po-vid-produkt/jaketa-i-palta.html
驚くばかり!魅力的な作品:-) –