Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.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
C# AJAX可以用于繁重的数据库操作吗_C#_Asp.net_Ajax_Vb.net - Fatal编程技术网

C# AJAX可以用于繁重的数据库操作吗

C# AJAX可以用于繁重的数据库操作吗,c#,asp.net,ajax,vb.net,C#,Asp.net,Ajax,Vb.net,我有一个web应用程序,上面有很多下拉列表和网格 当前,当一个下拉列表的值发生变化时,相关下拉列表中的项目将被填充(繁重的DB操作),并且实际上整个页面将被发布到服务器 问题是在这种情况下可以推荐Ajax吗?我听说Ajax只适用于轻操作。是的,它可以,只要给用户一些反馈,操作需要一段时间。在执行操作时显示消息或加载图像,然后在操作完成时将其隐藏。可以,只需向用户反馈操作需要一段时间即可。在执行操作时显示消息或加载图像,然后在操作完成时将其隐藏。答案当然是,对于繁重的DB操作,您可以使用AJAX,

我有一个web应用程序,上面有很多下拉列表和网格

当前,当一个下拉列表的值发生变化时,相关下拉列表中的项目将被填充(繁重的DB操作),并且实际上整个页面将被发布到服务器


问题是在这种情况下可以推荐Ajax吗?我听说Ajax只适用于轻操作。

是的,它可以,只要给用户一些反馈,操作需要一段时间。在执行操作时显示消息或加载图像,然后在操作完成时将其隐藏。

可以,只需向用户反馈操作需要一段时间即可。在执行操作时显示消息或加载图像,然后在操作完成时将其隐藏。

答案当然是,对于繁重的DB操作,您可以使用AJAX,但更好的问题是您是否应该使用它;答案是视情况而定。剪刀适合剪纸,但不适合剪院子;为正确的工作使用正确的工具


退一步说,听起来您的开发技术选择可能是您的问题的一部分,正如是否使用AJAX进行大量的DB调用一样。我的观点是,如果您试图避免页面的完整回发,那么您可以考虑更多基于客户端的实现(例如KnockoutJS、主干、烬、anguljs等),它可以使用服务器的调用来获得屏幕特定部分所需的数据(通过视图模型)。.

答案当然是,您可以将AJAX用于繁重的DB操作,但更好的问题是您是否应该使用它;答案是视情况而定。剪刀适合剪纸,但不适合剪院子;为正确的工作使用正确的工具


退一步说,听起来您的开发技术选择可能是您的问题的一部分,正如是否使用AJAX进行大量的DB调用一样。我的观点是,如果您试图避免页面的完整回发,那么您可以考虑更多基于客户端的实现(例如KnockoutJS、主干、烬、anguljs等),它可以使用服务器的调用来获得屏幕特定部分所需的数据(通过视图模型)。.

您可以使用ajax,但我想提供另一种解决方案

使用ajax/post/which启动流程,然后使用以下方法之一定期请求反馈:

  • JS轮询(setInterval)
  • 服务器发送事件
  • 信号员

这样,用户就可以在等待操作完成时导航离开。当收到“action completed”(操作完成)反馈时,如果更合适,您可以使用整洁的页面通知或电子邮件提醒用户。

您可以使用ajax,但我想提供另一种解决方案

使用ajax/post/which启动流程,然后使用以下方法之一定期请求反馈:

  • JS轮询(setInterval)
  • 服务器发送事件
  • 信号员

这样,用户就可以在等待操作完成时导航离开。收到“操作完成”反馈后,如果更合适,您可以使用整洁的页面通知或电子邮件提醒用户。

选项是否经常更改,或者是否特定于用户?如果没有,我会考虑在Web服务器上缓存这些信息,这样您就不必每次都去DB了。在这种情况下,ajax将是一个很好的选择。我同意Karl和Rob都是很好的答案-我还想看看可以做些什么来加速长时间运行的操作-缓存已经提到了,但是您是否研究了长时间运行的查询的执行计划?如果您使用sql server 2008+在运行查询inSSMS时,有一个显示exec plan的选项,这通常会为您提供实现提示(通常缺少索引)的提示和代码,这些提示会产生巨大的差异。也可以考虑在嵌套SQL查询和NotoNoto而不是嵌套的情况下使用一些视图,也可以非常有用。Ajax在客户端工作,因此在DB上什么也不做,您的服务器将是加载的一个,所以问题是,Ajax可以处理响应吗?如果这是来自服务器的一个非常大的响应,那么您必须确保您的缓冲区能够接收所有响应。您还应该记住,当所有数据都试图渲染时,您无法控制渲染的速度…选项是否经常更改,或者它们是否特定于用户?如果没有,我会考虑在Web服务器上缓存这些信息,这样您就不必每次都去DB了。在这种情况下,ajax将是一个很好的选择。我同意Karl和Rob都是很好的答案-我还想看看可以做些什么来加速长时间运行的操作-缓存已经提到了,但是您是否研究了长时间运行的查询的执行计划?如果您使用sql server 2008+在运行查询inSSMS时,有一个显示exec plan的选项,这通常会为您提供实现提示(通常缺少索引)的提示和代码,这些提示会产生巨大的差异。也可以考虑在嵌套SQL查询和NotoNoto而不是嵌套的情况下使用一些视图,也可以非常有用。Ajax在客户端工作,因此在DB上什么也不做,您的服务器将是加载的一个,所以问题是,Ajax可以处理响应吗?如果这是来自服务器的一个非常大的响应,那么您必须确保您的缓冲区能够接收所有响应。您还应该记住,当所有数据都试图渲染时,您无法控制它的速度…@SNash。谢谢别忘了把最有用的答案标为正确。@SNash。谢谢别忘了把最有用的答案标为正确。