我正在开发一个具有square
前端和AngularJS
后端且Laravel
作为数据库的应用程序。后端基本上用作REST API。
在搜索页面上工作时,我遇到了问题,当用户点击多个过滤器,在搜索文本字段中写入或快速浏览页面时,会发送多个请求,因为搜索响应会自动更新搜索按钮会大大减慢响应时间。
所以我尝试通过取消请求来解决这个问题。
这是使用MySQL
的代码:
Restangular
问题是我认为请求仍然会进入后端,所以当请求的前端部分被取消时,数据库很慢。
我不希望应用程序感到反应迟钝,因此我不想阻止请求在前端发送一段时间以确保用户已完成查询。
答案 0 :(得分:0)
后端
如果您的数据没有快速变化,可以通过添加反向代理来缓存Web服务器上呈现的结果,从而获得良好的解决方案。
这样,如果重复请求相同的URL,您的代理将从缓存中提供已呈现的文档。根据数据的性质,可以在不同的缓存保留下缓存不同的URL端点。
Nginx具有内置的功能和ha-proxy,而庞德也可能是不错的选择。
前端
另一个解决方案可能是在前端更聪明,即将结果暂时存储在内存或基于浏览器的数据库IndexedDB中。这有助于两种典型情况: