2016-08-17 2 views
0

Мне нужно вызвать функцию GetAllProperties() во время загрузки страницы вместо вызова функции GetAllProperties() после того, как страница полностью загружена. Мой код выглядит следующим образом:Как сделать запрос AJAX на загрузку страницы

<script type="text/javascript"> 
    $(document).ready(function() { 
     GetAllProperties();  
    }); 
    function GetAllProperties() {  
     $.ajax({ 
      cache: false, 
      url: '/Home/GetAllProperties', 
      type: 'GET', 
      contentType: "application/json; charset=utf-8", 
      success: function (response) { 
       if (response.list.length > 0) { 
        console.log(response.list) 
        var $data = $('<table id="mytable" class="table table-striped"> </table>'); 
        var header = "<thead><tr><th>Property Name</th><th>Edit</th></tr></thead>"; 
        $data.append(header); 
        $.each(response.list, function (i, row) { 
         var $row = $('<tr/>'); 
         $row.append($('<td/>').html(row.PropertyName)); 
         $hidden = $(' <input type="hidden" name="hid" value= "' + row.PropertyId + '">'); 
         $row.append($hidden); 
         $editButton = $("<button class='editbtn' id='mybtn'>Edit</button>");  
         $row.append($editButton); 
         $deleteButton = $("<button class='deletebtn' id='delbtn'>Delete</button>");  
         $row.append($deleteButton); 
         $data.append($row); 
        });   
        $("#MyDiv").empty(); 
        $("#MyDiv").append($data); 
       } 
       else { 

       } 
      }, 
      error: function (r) { 
       alert('Error! Please try again.' + r.responseText); 
       console.log(r);  
      } 
     });  
    }  
</script> 

мне очень нужна ваша помощь, потому что я новичок в JQuery

Спасибо

+1

вы пробовали отладки? как смотреть в консоль вашего браузера? Я не совсем уверен, но я думаю, что функция должна быть определена до того, как она будет использована ... – Jakumi

ответ

0

Заменить

$(document).ready(function() { 
     GetAllProperties();  
}); 

только с вызовом GetAllProperties(). Вам не нужно DOM для Ajax вызовов

Затем замените

$("#MyDiv").empty(); 
$("#MyDiv").append($data); 

с

$(document).ready(function() { 
    $("#MyDiv").empty(); 
    $("#MyDiv").append($data); 
}); 

в действие с DOM, когда он будет готов. Другие действия, которые вы можете сделать без DOM.

0

Попробуйте этот код для вызова функции: $ (window) .on ('load', function() {GetAllProperties();});

+0

Спасибо за помощь, я пробовал это, но все та же проблема – Lucy

0

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

$(document).ready(function() { 
     GetAllProperties();  
    }); 

просто вызвать функцию

GetAllProperties();  
+0

Спасибо. Я попробовал это и все тот же вопрос – Lucy

0

Вы хотите, чтобы запустить функцию во время загрузки и а не потом? Затем поместите звонок GetAllProperties(); как можно раньше. Лучшее место будет в <head>.

Но имейте в виду, что вам необходимо поместить его после включение функции GetAllProperties. И функция должна быть объявлена ​​в том же файле.

В противном случае выполнение задерживается загрузкой файла сценария или задерживается загрузкой DOM при его размещении в нижней части страницы.

+0

Огромное вам спасибо за вашу прекрасную помощь .. Я очень новичок в Jquery .. так вы можете написать код, чтобы показать мне, как его реализовать? Спасибо – Lucy

0

Если вы хотите вызвать яваскрипт функцию во время загрузки страницы, чем вы должны попробовать следующие функции:

window.onload = function() { 
    GetAllProperties(); 
}; 
Смежные вопросы