Если вы хотите избежать использования jQuery, можно обойти другое использование PageMethod, в котором вы проверяете состояние операции с помощью функции javascript setInterval
. Это немного грязно, но это делает работу, если вы хотите ноль jQuery, и имитирует синхронизацию, которую вы ищете. Я использую его для больших операций, в которых я хочу обновить индикатор выполнения для клиента или чего-то еще. Вот пример того, как вы это сделаете, учитывая, какой код вы разместили:
function DelBatch()
{
var userInfo = get_cookie("UserInfo");
PageMethods.DeleteBatchJSWM(userInfo, function(result) {window.location = "BatchOperations.aspx";});
var status;
//Check to see if it has completed every second
var myInterval = setInterval(function ()
{
PageMethods.CheckDeleteBatchStatus(OnSuccess);
if (status == "Finished")
{
clearInterval(myInterval);
//Finished Deleting. Call your window refresh here
WindowRefresh();
}
}, 1000);
function OnSuccess(result)
{
status = result;
}
}
Код сзади:
[WebMethod]
public static string CheckDeleteBatchStatus()
{
string status = GetDeleteBatchStatus(); //some function to get the status of your operation
return status;
}