我有一个写真的网站,我正在努力提高加载和保存性能。
相簿制作工具显示在Web浏览器中,在Flash中完成,远程调用数据库操作通过AmfPhp完成。
保存相簿的算法基本上说:
foreach(page in photobook){
foreach(component in page){
//Make a remote call that saves the component in the Database
}
}
这意味着如果相册有30页,每页有10个组件(照片),该工具将创建大约300个同时连接而不计算上传连接。
例如,Firefox似乎已经准备好创建一个队列来处理请求。这会影响性能吗?
创建一个控制同时远程调用次数的队列会有帮助吗?
值得吗?
感谢您提供任何帮助。
答案 0 :(得分:1)
对远程服务器的每个请求都会导致脚本执行时间增加。
对数据库的3次查询比3次远程请求更快。
所以是的,您的性能将受到300个远程请求的严重影响。
最佳解决方案是对XML中的所有数据进行分页或序列化。虽然小心使用XML,但如果太大则会导致性能问题。
我认为分页是最好的选择。
答案 1 :(得分:0)
300个同步请求
是。太多了。
仅加载您需要的内容。
为什么要立即加载每张图片?加载第一页,也许可以预加载第二页,但如果这个人看起来不比第一页更多,那么你就会花费更多的带宽。
除此之外,我们假设您的相簿允许用户查看通过javascript检索的高分辨率版本。当用户点击它时,他们的请求会被添加到队列的底部,并且在其他300个请求中的最后一个请求完成之前不会被处理。