ユーザーがページの最後に到達したときに、新しいコンテンツを動的にロードしようとしています。私の Web アプリは gae-python を使用しています。ajax と jquery を使用して、html のクエリを更新します。
HTML :
{% block content %}
<div class="hero-unit special-padding">
{% for h in hots %}
{{ h.imageid.get().render() | safe }}
{% endfor %}
{% include 'pager.html' %}
</div>
{% endblock %}
Jquery & AJAX:
$(window).scroll(function () {
if ($(window).scrollTop() + $(window).height() > $('.hero-unit').height() - 100 && !isLoading) {$('#loadpage').click(function() {
var page=$('#loadpage').attr('name');
$.ajax({
type: "POST",
dataType:"json",
url: '/loadpage',
data : {'page': page},
success: updatehtml,
});
return false;
});
});
function updatehtml(e){
for (var i = 0; i < e.length; i++) {
var html= "{{ "+e[i]['imageid']+".get().render() | safe }}";
$('.hero-unit').append(html);
}
}
データストア エンティティをシリアル化し、json として渡します。HTMLを更新します
{{ datastoreKey.get().render()|safe }}
今.render()
、ajaxがHTMLを更新するたびに、jinja2フレームワークがpython関数を呼び出すようにします。
HTMLコード全体をjavascriptで書くことで代替できることは知っていますが、他に簡単で良い方法があるかどうか知りたいです。