我有一个报告和统计应用程序,以基本表格格式显示各种查询结果。在报告结果页面的底部是用户将他们正在查看的报告结果下载到CSV文件的选项。与在线银行类似的功能,您可以查看您的银行交易,然后可选择将交易历史记录下载到csv。PHP:从会话变量下载文件
这样做的最佳实践方法是什么?
a。一个下载按钮,用于触发报表查询重新运行并随后传输到csv下载文件。
或
b。当查询首次运行并在视图中呈现时,控制器将报告对象保存在会话变量中。下载按钮因此下载到来自会话变量的报告对象,而不必重新运行查询。
我在选项B中看到的好处是双重的。 1.报表查询不必重新运行,从而减轻数据库的负担。 2.从会话变量下载的报告与报告结果中显示的报告完全匹配。对于选项a,如果在查看报告的时间与触发下载链接的时间之间有数据更新,则下载的报告可能与正在查看的报告有所不同。
如果使用会话变量方法,我应该考虑是否存在任何风险或缺陷?
在此先感谢您的任何意见或指导。
感谢您的输入。是的,要存储在会话变量中的对象是格式化为下载到csv的报告输出的自定义报告类。我唯一担心的可能是安全或服务器内存负载问题,将对象存储在内存中,或者根据请求将它们简单地传输到浏览器。 – mass6