修改asp.net的Ajax变更为post请求的历程
2016-04-02 00:00
627 查看
摘要: 每个被折磨的岁月,都应该记录收获的果实。
公司原有的项目是用asp.net写,悲催的是本人是学java出生,只接触过C# 和 .NET MVC 4.0 虽说都有点类似,但着实让我苦恼了会。问题很简单,就是查询以后在点击加载更多查看某个详细点击返回始终都是返回到首次查询出的数据。这应该算属于Ajax的经典问题了。
问题:项目在微信上查询出数据,点击加载更多加载出第二页数据,点击其中一个跳转至详细页面,这个时候按安卓机的返回键,会返回出第一次查询出的数据,而第二页的数据,不好意思请你在点击一次 加载更多。
我们都知道Ajax的异步请求给我们带来很美好的用户体验感,但它的缺点也使的很多人在一些地方不得不放弃,而我很不幸的也遇到了这个问题,最终的结果我还是败下阵来,改用Post请求了。怎么想都是微信的错。
项目在其它手机游览器上是没有问题,唯独在微信的游览器上就会出现返回的时候始终返回第一次Search的数据,个人认为这应该是微信游览器的设计问题,不过多瞎扯,在其它游览器上我们会发现,我们如何的下一页 上一页 或者从Ajax页面跳转到非Ajax页面返回的时候,始终都是能返回到你上一个页面,在UC 游览上,你也可以通过左右滑动屏幕来获取到你前后所打开过的页面,这个时候,我在想我是否也能借着这形势来解决,我现在的问题。
微信上可没有UE游览器那样能让你左右滑屏,仅仅只有一个手机返回按钮,你只要触发返回所返回的请求必定是你上一次所与服务器产生交互的请求,于是我起初的想法是否能通过控制游览的返回url来处理我现在的问题,经过一番搜索后,我发现这并不是在我的能力范围内,而且我也没有那么多时间来处理,还没过试用期呢,后来在网上找到一篇博文给以了我一些灵感
http://blog.csdn.net/gf771115/article/details/18981363/ 各位可以去看一下,其中里面也有说到h5的两个有意思的东西 history.pushState 和 history.replaceState 但我始终无法处理返回以后再用Ajax去加载内容,所以不得不放弃使用H5的这两个,同时把 目标转移至Hash上面,显然我成功的将地址更换了,并且也将添加进游览器历史记录,我本以为我成功了,结果发现无论我在第一次回车,地址栏无法发送请求到后台,在回车第二次成功了,但参数里的信息仍旧是第一次Search的查询条件Page=1,这使的我很沮丧,问题出在哪里呢,难道一定要真实与服务器产生交互才能达到我想要的效果吗?或者,是我写法有问题,这时候我不犹的感到忧心了,因为在做这些事上我已经花费了半天多的时间了,最终改用Post的请求,原有的页面处理请求过程是
由于要改成Post请求方式,那么加载更多的这种方式将不再适用了,唯有将其改成上一页和下一页,然后将上一页和下一页操作过程跟Serach流程一样,那么问题来了,我该如何获得每次返回的页数,起初朋友建议我是一起将值带回到页面存储到隐藏域里,但这里有个致命问题就是点击Serach的时候它是重新将ComList页面重新加载一次,于是我采用Cookie,并且利用url,Serach与查看分页中有个参数不同来处理 看代码:
虽然看起来并不高端,但这也是我目前所想到的解决方案。
Don't give up, don't give in!
公司原有的项目是用asp.net写,悲催的是本人是学java出生,只接触过C# 和 .NET MVC 4.0 虽说都有点类似,但着实让我苦恼了会。问题很简单,就是查询以后在点击加载更多查看某个详细点击返回始终都是返回到首次查询出的数据。这应该算属于Ajax的经典问题了。
问题:项目在微信上查询出数据,点击加载更多加载出第二页数据,点击其中一个跳转至详细页面,这个时候按安卓机的返回键,会返回出第一次查询出的数据,而第二页的数据,不好意思请你在点击一次 加载更多。
我们都知道Ajax的异步请求给我们带来很美好的用户体验感,但它的缺点也使的很多人在一些地方不得不放弃,而我很不幸的也遇到了这个问题,最终的结果我还是败下阵来,改用Post请求了。怎么想都是微信的错。
项目在其它手机游览器上是没有问题,唯独在微信的游览器上就会出现返回的时候始终返回第一次Search的数据,个人认为这应该是微信游览器的设计问题,不过多瞎扯,在其它游览器上我们会发现,我们如何的下一页 上一页 或者从Ajax页面跳转到非Ajax页面返回的时候,始终都是能返回到你上一个页面,在UC 游览上,你也可以通过左右滑动屏幕来获取到你前后所打开过的页面,这个时候,我在想我是否也能借着这形势来解决,我现在的问题。
微信上可没有UE游览器那样能让你左右滑屏,仅仅只有一个手机返回按钮,你只要触发返回所返回的请求必定是你上一次所与服务器产生交互的请求,于是我起初的想法是否能通过控制游览的返回url来处理我现在的问题,经过一番搜索后,我发现这并不是在我的能力范围内,而且我也没有那么多时间来处理,还没过试用期呢,后来在网上找到一篇博文给以了我一些灵感
http://blog.csdn.net/gf771115/article/details/18981363/ 各位可以去看一下,其中里面也有说到h5的两个有意思的东西 history.pushState 和 history.replaceState 但我始终无法处理返回以后再用Ajax去加载内容,所以不得不放弃使用H5的这两个,同时把 目标转移至Hash上面,显然我成功的将地址更换了,并且也将添加进游览器历史记录,我本以为我成功了,结果发现无论我在第一次回车,地址栏无法发送请求到后台,在回车第二次成功了,但参数里的信息仍旧是第一次Search的查询条件Page=1,这使的我很沮丧,问题出在哪里呢,难道一定要真实与服务器产生交互才能达到我想要的效果吗?或者,是我写法有问题,这时候我不犹的感到忧心了,因为在做这些事上我已经花费了半天多的时间了,最终改用Post的请求,原有的页面处理请求过程是
由于要改成Post请求方式,那么加载更多的这种方式将不再适用了,唯有将其改成上一页和下一页,然后将上一页和下一页操作过程跟Serach流程一样,那么问题来了,我该如何获得每次返回的页数,起初朋友建议我是一起将值带回到页面存储到隐藏域里,但这里有个致命问题就是点击Serach的时候它是重新将ComList页面重新加载一次,于是我采用Cookie,并且利用url,Serach与查看分页中有个参数不同来处理 看代码:
虽然看起来并不高端,但这也是我目前所想到的解决方案。
Don't give up, don't give in!
相关文章推荐
- 分享微信开发Html5轻游戏中的几个坑
- Ajax
- $.ajax()方法详解
- jQuery ajax - ajax() 方法
- 解决Ajax悬停效果,无法遮蔽FLASH的问题
- 星外ASP.Net的安全设置相关说明
- 再谈Jquery Ajax方法传递到action(补充)
- Dom在ajax技术中的作用说明
- C#、ASP.NET通用扩展工具类之TypeParse
- 使用Ajax实时检测"用户名、邮箱等"是否已经存在
- 探讨Ajax中同步与异步之间的区别
- 实现ASP.NET无刷新下载并提示下载完成的开发思路
- C#、ASP.NET通用扩展工具类之LogicSugar
- Firefox返回时Iframe的显示Bug的解决方法
- 防止网页后退 asp禁止缓存
- C#、ASP.NET通用工具类IsWhat?(可以判断数字、身份证、数据类型等等)
- ajax中data传参的两种方式分析
- 原生AJAX写法实例分析
- 探秘ajax跨域请求