Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.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
Jquery 在ajax调用时将1000行提交到db使ajax调用挂起_Jquery_Asp.net_Ajax_Linq - Fatal编程技术网

Jquery 在ajax调用时将1000行提交到db使ajax调用挂起

Jquery 在ajax调用时将1000行提交到db使ajax调用挂起,jquery,asp.net,ajax,linq,Jquery,Asp.net,Ajax,Linq,我进行了一个ajax调用,结果是在db中插入了大约1000行,直到完成为止,ajax调用挂起并等待响应。在ajax调用中,我调用CreateNotification方法 实现这一点以防止ajax调用挂起的最佳方法是什么 public static void CreateNewNotification(Guid UserGuid, string text, Guid questionGuid, string userName) { Notification n

我进行了一个ajax调用,结果是在db中插入了大约1000行,直到完成为止,ajax调用挂起并等待响应。在ajax调用中,我调用CreateNotification方法

实现这一点以防止ajax调用挂起的最佳方法是什么

 public static void CreateNewNotification(Guid UserGuid, string text, Guid questionGuid, string userName)
       {
           Notification notification;
           LinqConnectionDataContext context = new LinqConnectionDataContext();

           string baseUrl = text;

       var listOfFolowers = Folower.getMyFolowers(UserGuid);

       if (listOfFolowers.Count() != 0)
       {
           foreach (var item in listOfFolowers)
           {
               notification = new Notification();
               notification.Url = baseUrl;
               notification.UidCreationUser = UserGuid;
               notification.UidFolowerUser = item.FolowerUserId;
               notification.Text = userName + "just answered a question - " +text;
               notification.Uid = Guid.NewGuid();
               notification.CreationDate = DateTime.Now;
               notification.Checked = false;
               context.Notifications.InsertOnSubmit(notification);
           }

       }

       try
       {
           context.SubmitChanges();
       }
       catch (Exception e)
       {

       }


   }

对于这种情况,可以使用ajax部分回发方法。通过使用部分回发,您可以控制查询。也可以使用任何其他方法插入批量数据。这个挂起是因为数据库时间过期。

是您调用的ajax函数吗?不,ajax函数正在调用这个方法,ajax部分很好,我只需要找出如何防止挂起更新这1000行之后,您需要客户端的响应吗?如果不是,使用一个线程来异步更新行,并在启动线程之后直接返回,这样客户端在提交行之前不会挂起。对于许多插入,考虑使用批量复制过程,而不是使用LINQ到SQL/EF。ORM解决方案需要1000个对数据库的请求。在使用大容量复制时,我已经看到了性能的显著提高,这可能会消除超时问题。