2016-06-02 2 views
-1

Я создаю html-страницу и содержит n количество файлов сценариев.Предотвращение зависания страницы

В моей HTML странице на window.onload I'm` вызывающего одну из своих функций, как

<script> 
window.onload = function() { 
     MyMethod('Value'); 
    }; 
</script> 

Когда она попадет эту часть коды моей страница становится заморожена до тех пор, выполнение функции не будет завершено.

Причина, по которой я сказал n количество сценариев, состоит в том, что эта проблема никогда не существует с другими файлами сценария, но для этого конкретного вызова window.onload.

Как я могу сделать из застрять, когда функция называется

MyMethod принимает значение делает ajax вызов к одному из моей службы, на основе result либо он displays или hides некоторые из моих элементов

JavaScript

function MyMethod(val) { 
var par = val; 
jQuery.ajax({ 
      type: "POST", 
      url: "/services/MyService/MethodName", 
      data: par, 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      async: false, 
      success: function (response) { 
       arr = response.d.toString().split(','); 
       if (arr[0] == "0") { 
        //show and hide some DOM elements 
       } 
       else{ 
        //show and hide other DOM elements 
       } 
      }, 
      error: function (response) { 

      } 
     }); 
+4

Что такое 'MyMethod'? Не видя этого, мы можем только догадываться, что вызывает блокировку. – ste2425

+0

Он застрянет, запустит таймер и поместит ваш метод в этот таймер. – Gar

+0

@Gar Таймер просто задерживает код замораживания –

ответ

0

Сделать asynctrue.

async: true, 
+0

Я не могу сделать async: true, потому что у меня есть другая логика для реализации –

Смежные вопросы