Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 角度:选择元素后返回搜索列表_Angularjs_Ajax_Search_Back - Fatal编程技术网

Angularjs 角度:选择元素后返回搜索列表

Angularjs 角度:选择元素后返回搜索列表,angularjs,ajax,search,back,Angularjs,Ajax,Search,Back,我在角度应用程序中遇到以下问题: -第一个页面是一个搜索页面,包含一个表单和一个搜索列表。搜索结果已分页,有一个“显示更多”按钮,显示接下来的10个结果 -单击结果将进入第二页,其中包含有关元素的详细信息(这只是一种典型的搜索行为) 现在我的问题是:在元素页面中,单击浏览器的后退按钮将用户带到搜索页面,但搜索丢失 我实现了一个缓存,以便将表单存储在服务中——这样我可以自动重新启动搜索。但在这种情况下,滚动将丢失,只显示前十个结果(分页将丢失) 我看到的唯一解决方案是每次单击“显示更多”按钮时在历

我在角度应用程序中遇到以下问题: -第一个页面是一个搜索页面,包含一个表单和一个搜索列表。搜索结果已分页,有一个“显示更多”按钮,显示接下来的10个结果 -单击结果将进入第二页,其中包含有关元素的详细信息(这只是一种典型的搜索行为)

现在我的问题是:在元素页面中,单击浏览器的后退按钮将用户带到搜索页面,但搜索丢失

我实现了一个缓存,以便将表单存储在服务中——这样我可以自动重新启动搜索。但在这种情况下,滚动将丢失,只显示前十个结果(分页将丢失)

我看到的唯一解决方案是每次单击“显示更多”按钮时在历史记录中添加一个条目,但我还必须将窗口的滚动级别保存在某个位置。我觉得这个解决方案相当复杂和烦人,并不漂亮

所以问题是:有没有一种通用且更简单的方法可以做到这一点


我认为这是ajax/angular应用程序的一个常见问题,在deezer中,当我选择一个相册时,我有相同的相册。)

这应该通过url参数进行管理。。。应用程序路由器必须能够请求确定的应用程序状态。在管理服务器端搜索结果时,您需要管理客户端搜索结果

例如:如果有人通过邮件分享你的搜索结果会发生什么

这就是为什么所有与应用程序状态有关的内容都应保留在url上的原因:
http://myapp.com/search?page=1&...


以这种方式构建应用程序浏览器的history.back btn完全符合您的要求。

这应该通过url参数进行管理。。。应用程序路由器必须能够请求确定的应用程序状态。在管理服务器端搜索结果时,您需要管理客户端搜索结果

例如:如果有人通过邮件分享你的搜索结果会发生什么

这就是为什么所有与应用程序状态有关的内容都应保留在url上的原因:
http://myapp.com/search?page=1&...


以这种方式构建应用程序浏览器的history.back btn完全符合您的要求。

感谢您的反馈,这非常有用,我已经开始实施此类参数。但是,您知道为什么在ajax应用程序中,我们不能使用浏览器缓存吗?例如,对于JSF应用程序,当您回顾历史时,它不需要任何新的请求,它只使用本地缓存(cf),我不知道Java服务器面,但这并不意味着。。。浏览器缓存依赖于浏览器,而不是服务器或框架,并且它总是被使用,许多请求会被跳过,这取决于HTTP ETag。。。很可能,您的应用程序没有进行优化以实现这一点。如果在网络面板中打开开发人员工具,可以看到资源的加载方式及其状态代码:304通常表示资源未修改,可以在本地版本中使用。客户端缓存应该通过HTML5应用程序缓存和服务人员进行优化。感谢您的反馈,这非常有用,我开始实现这样的参数。但是,您知道为什么在ajax应用程序中,我们不能使用浏览器缓存吗?例如,对于JSF应用程序,当您回顾历史时,它不需要任何新的请求,它只使用本地缓存(cf),我不知道Java服务器面,但这并不意味着。。。浏览器缓存依赖于浏览器,而不是服务器或框架,并且它总是被使用,许多请求会被跳过,这取决于HTTP ETag。。。很可能,您的应用程序没有进行优化以实现这一点。如果在网络面板中打开开发人员工具,可以看到资源的加载方式及其状态代码:304通常表示资源未修改,可以在本地版本中使用。客户端缓存应该通过HTML5应用程序缓存和服务工作者进行优化。