在滚动中动态创建更多php对象


dynamically create more php objects on scroll

我想做以下事情,但不知道如何最好地解决它:

在我创建的一个社交网站上,我有一个类似Facebook的墙。每一个墙帖都是一个PHP对象,上面附加了几个"注释"对象。所有相关数据当前都是在页面加载时从数据库中提取的,并按照我的意愿工作

我的墙越来越长,所以我想通过JQuery和Ajax实现无限滚动。我想向php页面发送更多post对象的请求,php页面会实例化它们并将完成的对象发回。现在我已经读到,通过JSON发送PHP对象是一种糟糕的做法,它可能会导致问题和潜在的攻击向量。

我应该如何处理?用Jquery写整面墙?它是否向PHP发送数据请求,但使用JQuery而不是PHP显示所有内容?

如果能提供一些建议,我们将不胜感激。

您应该发送AJAX请求以获得所需的帖子,并返回准备好的HTML,您可以使用$('wall_container').append($(new_post_HTML))将其附加到容器中;

我会说加载初始页面,并在获得数据时将其附加到墙上。无需发送对象。您需要的所有数据都将在请求对象的responseText中

var request = new XMLHttpRequest();
var form = new FormData();
form.append('param_1',val_1);
form.append('param_2',val_2);
request.open("http://example.com/getPostsForWall.php","POST",true);
request.send(form);
request.onreadystatechange = function(){
   if(request.status==200 && request.readyState == 4){
        //Successful request
        response = JSON.parse(request.responseText);
        //Want to append a title using jquery to your wall that has an id of wall?
        $("#wall").append("<h2 class='wall-post-title'>"+response.post_title+"<h2>");
   }
};

这是假设您的服务器端代码在发送响应时返回了一个关键字为"post_title"的变量