gpt4 book ai didi

ASP.NET Ajax - 异步请求有单独的 session 吗?

转载 作者:行者123 更新时间:2023-12-04 16:57:23 27 4
gpt4 key购买 nike

我们正在编写一个搜索应用程序,它将搜索条件保存到 session 状态并在 asp.net 更新面板内执行搜索。有时,当我们连续执行多次搜索时,第二次或第三次搜索有时会返回第一组搜索条件的结果。

示例:我们的第一次搜索是查找“John Smith”-> 显示 John Smith 结果。第二次搜索我们查找“Bob Jones” -> John Smith 结果。

正如我所说,我们将所有搜索条件保存在 session 状态中,并从 ajax 请求内的 session 状态中读取它以格式化数据库查询。当我们在 VS 中放置断点时,一切都正常,但没有它们,我们会得到原始的搜索条件和结果。

我的猜测是因为它们保存在 session 中,ajax 请求以某种方式获取自己的 session 并将条件保存到该 session 中,然后每次都从该 session 中检索条件,但是非异步内容能够看到条件何时被修改并相应地保存对状态的更改,但由于它们来自两个不同的 session ,因此保存和读取的内容存在差异。

编辑:::
更详细地说,有人建议将搜索条件附加到查询字符串中,这通常是一种很好的做法,我同意应该是这样,但按照我们的要求,我认为它不可行。他们希望它让用户填写输入控件点击搜索并且没有页面重新加载,他们唯一看到的是页面上的进度指示器,并且他们仍然能够导航和使用当前页面上的其他功能。如果我要向查询字符串添加条件,我将不得不执行另一个请求导致整个页面加载,这取决于搜索条件可能需要很长时间。这就是为什么我们使用 ajax 调用来执行搜索以及为什么我们不会引起另一个完整页面请求..... 我希望这能澄清这种情况。

最佳答案

只是另一个想法,我总是遇到 updatepanel 的问题,并且更喜欢使用 PageMethods 直接通过库编写我的 atlas ajax 请求。您可以更好地控制发送和接收的内容。 UpdatePanel 发送整个页面,并接收整个页面控件层次结构,然后它解析出什么是“新鲜的”并显示出来。

编辑:您用来将条件保存到 session 的代码是什么?并且您在方法中是否有代码来实际检查 session 是否有一些保存的标准,并将其传回?也许这就是为什么第二次/第三次更新面板回发返回第一组标准而不是预期结果的原因?顺便说一句,我从做一些繁重的 atlas ajax 事情中知道绝对没有两个 session (一个用于正常回发,一个用于异步)您是否有机会使用网络农场?

编辑 #2:如果我不是同样回复的人的粉丝,我将无法写出我上面写的内容(第一段):https://stackoverflow.com/users/60/dave-ward

关于ASP.NET Ajax - 异步请求有单独的 session 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/127842/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com