我有一个家庭列表,其中每个家庭 – 翻转 – 显示工具提示,其中包含有关个人家庭的附加信息(居住地信息和该地点的3张图片).
那么最佳实践(性能)是什么?要仅在需要时(翻转时)预先加载开头的所有数据或者ajax请求数据?
请注意,该页面已包含3个选择的mysql_queries,而工具提示的数据提取需要另外2个.
原始3个查询:
SELECT * FROM news ORDER BY bDate DESC LIMIT 5;
SELECT * FROM family ORDER BY created DESC LIMIT 5;
SELECT bplace.placeID, bplace.sName, bplace.countryID, bcountry.regionID FROM bplace, bcountry WHERE bplace.countryID = bcountry.countryID ORDER BY created DESC LIMIT 5;
while(...){
$allFamilies[] = $row["familyID"];
}
$allFamilies = implode(',',$allFamilies);
SELECT sName FROM bplace WHERE placeID IN ($allfamilies);
SELECT url FROM images WHERE placeID IN ($allfamilies);
SELECT sName FROM bplace WHERE placeID='1';
SELECT url FROM images WHERE placeID='1';
解决方法:
我认为这只是一点点的常识.预加载一千行将花费一些时间来抓取,循环,然后显示(使页面大小增加几kb).如果只抓取几行,那么抓住那些行而不是等待AJAX加载它们可能是有意义的.
需要考虑的另一件事是,数据是否会发生变化并且会经常发生变化.如果工具提示数据不断变化,那么无论如何都可以采用AJAX.如果它基本上是静态的,那么将它们全部抓在一起可能是有道理的.
Ajax可能需要一些时间,但除非您的服务器数量非常大并且您没有相应增长,否则这些请求只需要几分之一秒.
最终,这是个人偏好.什么对你更容易?硬编码每个工具提示会更容易,还是更容易使用javascript调用工具提示数据?使用更简单的方式,并使用您的网站更好地流动.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。