我在这方面很缺乏经验,所以这似乎是个愚蠢的问题,但请耐心地听我说。
获得了一个mysql DB和一个查询,通过如下所示的PHP PDO:
SELECT p.*, group_concat( distinct c.color) as color, b.breeder_puppy_thumb , b.breeder_name
FROM puppy_list p
JOIN puppies_join_colors pjc ON p.ID = pjc.puppy_ID
JOIN puppy_colors c ON c.ID = pjc.color_ID
JOIN breeder_list b ON b.ID = p.puppy_breeder_id
WHERE p.puppy_breed = :breedName
GROUP BY p.ID
ORDER BY p.price DESCORDER BY子句可以是不同的(可以由不同的字段排序)。
我通过AJAX将这个查询发送到一个PHP文件,该文件将其发送到DB服务器-所以往返,4跳。
在我的网站中,有分页,它是动态完成的,所有数据都以大JSON对象的形式存储在内存中,并且处理是在这个JSON对象上完成的,在前端框架中(也是基于angularJS的分页),而不需要再次查询DB。
我的第一个问题是:给定这样一个查询,如果返回的行数为数千(数万),那么对单个查询的安全限制是什么?我应该返回多少行,这样才不会过度杀死客户端?
我的第二个问题是:我应该把处理的一部分从角度转移到后端框架,还是这样做?
如果我没有很好地表达这个问题,请告诉我,我会尽力解决这个问题。
发布于 2015-07-06 18:11:57
@拉杜·安德烈,德鲁·皮尔斯有一些有效的观点。
关于你的第一个问题=>,你可以做Facebook目前使用的“无限滚动”。这是一种显示分页的奇特方式。当用户到达底部或显示“加载更多”按钮时,加载更多的结果。参见这里的一个示例:http://www.w3bees.com/2013/09/jquery-infinite-scroll-with-php-mysql.html
关于第二个问题=>,一个很好的编程解决方案是让后端和前端都能正常工作,以防用户禁用java-脚本。但是,现在默认启用了js。我会说,保持JS前端和后端编程以及。你永远不知道用户禁用了什么。在这样做的时候,一定要记住移动设备,它们可能不会欣赏每页1000条,尤其是现在,几乎我们所有的浏览都是在移动设备上。
https://stackoverflow.com/questions/31230505
复制相似问题