2010-03-08 49 views
5

Tôi đang cố gắng tìm cách trì hoãn tất cả mã diễn ra sau khi tôi thực hiện cuộc gọi dịch vụ. Lý do cho sự chậm trễ này là dịch vụ của tôi trả về mã necesarry cho các chức năng sau đây và kết quả tôi vượt qua là các chức năng sau đây là không xác định.Các cuộc gọi hàm jquery Delay

Tôi đã thử gắn setTimeout() vào hàm được gọi trực tiếp sau cuộc gọi dịch vụ, nhưng sau đó nó bỏ qua hàm tôi đặt thời gian chờ và nhảy đến hàm tiếp theo ... Phương pháp web của tôi mà tôi đang kêu gọi không phải là lớn và không làm bất cứ điều gì đó là quá chuyên sâu

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; 
    } 

Tôi đã tìm thấy sự chậm trễ() và nghĩ rằng có thể hoạt động, nhưng tôi không có jquery 1.4 và không thể sử dụng nó như chưa.

có bất kỳ điều gì có thể giúp ..?

+1

Không rõ vấn đề là gì. Mã bạn hiển thị không phải là javascript, eh? Tôi đoán nó là một phương pháp phía máy chủ, được gọi trên json? Nhưng bạn đang hỏi về cách trì hoãn trong trình duyệt. Vì vậy, mã bạn hiển thị có lẽ không liên quan, phải không? Bạn có thể hiển thị mã phía trình duyệt thực tế mà bạn muốn thực hiện sự chậm trễ không? – Cheeso

+0

Tôi không thể lấy mã để đăng chính xác trong biểu mẫu .. vì vậy tôi hy vọng yuo có thể làm cho nó ra .. – Avien

Trả lời

0

well .. tôi không bao giờ có thể có chức năng trì hoãn và tôi không thể sử dụng chức năng onCallback để gọi các chức năng tôi muốn trì hoãn. Vì vậy, tôi đã thiết lập giá trị tôi muốn nhận khi tải trang. Tôi đang thiết lập các giá trị trên các hàng thay vì .. nó không chính xác những gì tôi muốn làm, nhưng nó hoạt động. Trang của tôi cũng tải một phần của một giây chậm hơn nữa ..

3

Gọi hàm này làm cuộc gọi lại cho cuộc gọi dịch vụ của bạn. Làm thế nào bạn gọi dịch vụ của bạn?

+0

có thể làm việc ... Tôi sẽ cố gắng – Avien

0

đây là một số mã ..

các GetCheckedOutFieldingsForUser là các cuộc gọi dịch vụ tôi đã đề cập đến trong bài viết của tôi. Hai chức năng edituser dưới đây là những chức năng tôi muốn trì hoãn .. nếu tôi đặt sự chậm trễ trên setTimeout('$popup.load("Forms/EditUserForm.htm #EditUserForm", null, function() { EditUserLoaded(cacId, onSaveCallback); });', 1000); nó bỏ qua cho EditUserLoaded, mà doesnt cho kết quả đúng

function EditUser(id, onSaveCallback) { $("#EditUserPopup").remove(); var $popup = $("<div id='EditUserPopup'></div>"); $("body").append($popup); $popup.load("Forms/EditUserForm.htm #EditUserForm", null, function() { EditUserLoaded(cacId, onSaveCallback); }); }

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"); 
    } 
+0

Tôi không thể nói những gì bạn đang cố gắng làm. Vui lòng chỉnh sửa câu hỏi ban đầu của bạn xóa bất kỳ câu hỏi nào không có liên quan và định dạng đúng mã. –

0

Sau khi đọc lại bài đăng gốc của tôi, tôi thấy có vẻ khó hiểu là địa ngục ... những gì tôi đã làm là; tạo một phương thức getUserRecords thứ hai có một 'flag', tôi gọi getUserRecords từ phương thức getUser đầu tiên của tôi và trả về một kiểu đối tượng mới với cờ được bao gồm trong đối tượng mới.

Các vấn đề liên quan