2017-01-13 62 views
0

根據標題我只面臨一次部署的性能問題。它是一個ASP.NET MVC5站點,並部署在Azure上。我們正在講話vs幾秒鐘:/jQuery autocomplete - 緩慢服務器vs本地

我可以準備一個視頻或任何有助於解決此問題的內容。 沒有JS錯誤黯然拋出:/

這裏是展示它完美地本地Working

帶電作業的圖像,它最終顯示7/8秒後如..如果不是很長。 代碼傳入...

$(document).ready(function() { 
 

 
      $("#SerialSearch").autocomplete({ 
 
       autoFocus: true, 
 
       //delay: 0, 
 
       minLength: 2, // minimum length to trigger suggestions 
 
       select: function(e, ui) { // define select handler 
 

 
        //alert(ui.item.value); 
 
        //hitting enter key on selected item works, mouse clicking after 609 on V609xxx will submit 609 sadly 
 
        //With this I override the problem 
 
        $('#SerialSearch').val(ui.item.value); 
 
        //alert('here'); 
 
        $(this).parents('form').submit(); 
 
       }, 
 

 
       source: function (request, response) { 
 
        @*var modelDataJSON = '@Html.Raw(Json.Encode(Model))';*@ 
 
        var check = @Html.Raw(val); 
 
        //var modelDataJSON = JSON.stringify(check); 
 
        $.ajax({ 
 
         url: "/Devices/DeviceSearch", 
 
         type: "POST", 
 
         dataType: "json", 
 
         data: { Prefix: request.term, model: check }, 
 
         success: function (data) { 
 
          //alert('success'); 
 
          response($.map(data, function (item) { 
 
           return { label: item.SerialNumber, value: item.SerialNumber }; 
 
          })) 
 

 
         } 
 
        }) 
 
       } 
 
       //messages: { 
 
       // noResults: "", results: "" 
 
       //} 
 
      }); 
 
     })

CSHTML:

@{ 
 
    ViewBag.Title = "Devices"; 
 
    Layout = "~/Views/Shared/_Layout.cshtml"; 
 
    //var val = Json.Encode(Model); 
 
    //Using viewdata to load in mem entire device list 
 
    var val = Json.Encode(@ViewData["FullDeviceList"]); 
 
} 
 

 
@using (Html.BeginForm(FormMethod.Get)) 
 
{ 
 
    @Html.AntiForgeryToken() 
 
    <div class="form-horizontal"> 
 
    <hr /> 
 
    <div class="form-group"> 
 
     <div class="col-md-12"> 
 
     @Html.EditorFor(model => model.SerialSearch, new { htmlAttributes = new { @class = "form-control" } }) 
 

 
     </div> 
 
    </div> 
 
    </div> 
 
}

+0

請給我們一個[最小,完整和可驗證的例子](http://stackoverflow.com/help/mcve) – Liam

+0

你的問題是什麼? – JohnH

+0

哇,你們快速:)來吧 – David

回答

0

做的是確定問題的根源的第一件事。 我假設你有一個服務器端的自動完成控制源,並通過Ajax調用獲取數據。在本地(開發站點?),Ajax調用的延遲將是最小的。在Azure上,由於主機是遠程的,我預計延遲會增加。 (當然,不知道你的實現,這只是猜測)

+0

是的,星期一需要更多的調試。只是想着它的東西很傻,因爲它們是同一個DB。 Web應用程序的本地實例,但無論本地還是遠程,都可以使用azure數據庫。 – David

+0

要添加到這一點,林存儲頁面加載設備 - 查看數據vs擊中數據庫每個按鍵, – David

+0

您可以使用Glimpse來查明問題。 (使用指南,包括天藍色,在這裏:[鏈接](https://www.asp.net/mvc/overview/performance/profile-and-debug-your-aspnet-mvc-app-with-glimpse#da)) –