Jquery 在ajax调用时将1000行提交到db使ajax调用挂起
我进行了一个ajax调用,结果是在db中插入了大约1000行,直到完成为止,ajax调用挂起并等待响应。在ajax调用中,我调用CreateNotification方法 实现这一点以防止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
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个对数据库的请求。在使用大容量复制时,我已经看到了性能的显著提高,这可能会消除超时问题。