Я пытаюсь найти способ задержать весь код, который происходит после того, как я делаю служебный вызов. Причина этой задержки состоит в том, что мои сервисные возвраты кодируют necesarry для следующих функций и результата, который я передаю, к этим после функций, не определено.
Я попытался присоединить setTimeout () к функции, которая вызвана непосредственно после служебного вызова, но затем это просто пропускает функцию, я установил тайм-аут на и переходы к следующей функции... Мой веб-метод, который я называю, не является настолько большим и не делает ничего, что слишком интенсивно
public bool GetSpreadsheetStatusForAdmin(string cacId)
{
SpreadSheetStatus result = new SpreadSheetStatus();
List<Data.Spreadsheet> spreadsheets = SpreadsheetManager.GetUserSpreadsheets(GetCurrent.Identity);
if (spreadsheets.Count != 0)
{
foreach (Data.Spreadsheet spreadsheet in spreadsheets)
{
if (spreadsheet.Status == SpreadsheetStatus.Pending)
{
return true;
}
}
}
return false;
}
Я нашел задержку () и думал, что это могло бы работать, но я не имею jquery 1.4 и не могу использовать его на данный момент.
есть ли что-либо, что может помочь..?
ну ... я никогда не мог заставить функцию задерживать, и я не мог использовать onCallback для вызова функции, которые я хотел отложить. В итоге я установил значение, которое хотел получить при загрузке страницы. Вместо этого я устанавливаю значения в строках ... это не совсем то, что я хотел сделать, но это работает. Моя страница тоже загружается на долю секунды медленнее ..
Вызов функции как обратный вызов вашего служебного вызова. Как вы звоните в свою службу?
вот часть кода ..
GetCheckedOutFieldingsForUser - это вызов службы, о котором я упоминал в своем сообщении. Две функции EditUser ниже - это функции, которые я хотел бы отложить .. если я поставлю задержку на setTimeout ('$ popup.load ("Forms / EditUserForm.htm #EditUserForm", null, function () {EditUserLoaded (cacId, onSaveCallback);}); ', 1000);
он переходит к EditUserLoaded, который не дает правильных результатов
function EditUser (id, onSaveCallback)
{
$ ("# EditUserPopup"). Remove ();
var $ popup = $ ("
function EditUserLoaded(id, onSaveCallback)
{ $ ("# EditUserCancelButton"). Click (function () {ShotdownEditUserForm ()});
alert(isCheckedOut + "EditUserLoaded");
CallMfttService("ServiceLayer/UserManager.asmx/GetUser", "{id:'" + id + "'}", function(result)
{
if (!userIsAdmin)
{
$("#EditUserForm input").attr("disabled", "disabled");
$("#EditUserForm select").attr("disabled", "disabled");
$('#EditUserFormHeader').text("View User");
$("#EditUserCancelButton").text("Close");
$("#EditUserSaveButton").hide();
}
else
{
if (isCheckedOut == "True")
{
$("#EditUserOrganization").attr("disabled", "disabled");
}
$("#EditUserSaveButton").click(function() { SaveUser(id, onSaveCallback); }).removeAttr("disabled");
}
После перечитывания моего оригинального поста я вижу, что он выглядит запутанным, как черт... то, что я в конечном итоге сделал, было; создавая второй метод getUserRecords, получив флаг, я вызываю getUserRecords из моего первого метода getUser и возвращаю новый тип объекта с флагом, включенным в новый объект.