我正在尝试在用户到达页面结束时动态加载新内容.我的网络应用程序使用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 }}
解决方法
function updatehtml(e){ for (var i = 0; i < e.length; i++) { var html= "{{ "+e[i]['imageid']+".get().render() | safe }}"; $('.hero-unit').append(html); } }
当有人请求您的URI时,只会呈现一次.
所以行var html =“{{”e [i] [‘imageid’]“.get().render()| safe}}”;将被呈现并包含对您的porpuse的无效呈现.
你需要用你的lodapage处理程序用html响应才能做到这一点.
只需’移动/采用’html =“{{”e [i] [‘imageid’]“.get().render()| safe}}”;到您的loadpage处理程序,然后使用简单的模板文件或内联呈现它,并使其成为html响应. AJAX请求将能够获取html格式化数据,然后您可以轻松追加它.你必须小心id,而不是让它们依赖html,而是依赖于model / id,以便没有重复等.
之后,你可以只使用你可以从e参数中轻松获得的html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。