2016-09-19 15 views
-3

このC#コードで定義されているJSONオブジェクトを受け取るためにAJAX呼び出しを行うと、このオブジェクトを受け取るには46秒以上かかることがあります。オブジェクト自体はわずか12kbです。それは私のC#コード(これは実行に時間がかかりませんか?)の何か他のものですか?私のlocalhost IISサーバーでそれをテストします。なぜ私のajax呼び出しには時間がかかりますか?

これは私のコードです:

[AcceptVerbs(HttpVerbs.Post)] 
    public JsonResult LoadAudit(int id, string sheet) 
    { 
     FactsCustomerRepository<Cateringaudit> repo = new FactsCustomerRepository<Cateringaudit>(); 
     //IQueryable<Cateringaudit> result = repo.GetAll(i => i.State == 1); 
     Cateringaudit result1 = repo.Get(id); 
     WorkBook wb = new WorkBook(); 
     wb.read(new MemoryStream(result1.ExcelData)); 
     object[] jsonObjects = new object[3]; 
     //sheetnames to collect data from 
     string[] sheetNames = { "contract", "proces", "output" }; 
     //itterate trough all sheets in excel file 
     for (int sheetCount = 0; sheetCount < sheetNames.Length; sheetCount++) 
     { 
      wb.Sheet = wb.findSheetByName(sheetNames[sheetCount]); 
      //Create new array with same lenght as rows with data 
      Dictionary<string, string[]> excelData = new Dictionary<string, string[]>(); 
      //iterate trough all rows in worksheet 
      for (int i = 1; i < wb.LastRow + 2; i++) 
      { 
       excelData.Add(blabla); 
       jsonObjects[sheetCount] = excelData; 
      } 
     } 
     return Json(jsonObjects); 
    } 
+0

上記のコードはすべて質問に必要ですか? –

+3

重要な行の各ステップを記録してください。ログにはタイムスタンプが必要です。それから、そこから調査することができます。 –

+0

上記のコードはどこですか?これはAJAXとはまったく関係ありません。あなたの質問を変更してください – Radinator

答えて

0

はここに手足に行く:C#でExcelsheetsを開くことはとてつもなく遅いのです。

EEPLUS:あり道高速ですそこ偉大なライブラリですhttp://epplus.codeplex.com/

は、しかし、最初にExcelを除外するために:あなたは、Excelを使用静的JsonObjectを返さなく試してみましたか?

[AcceptVerbs(HttpVerbs.Post)] 
public JsonResult LoadAudit(int id, string sheet) 
{ 
    return Json(); // something like this 
} 
+0

コメントなしで投票を終了してください。ありがとう! – RvdK

+0

それは本当にExcelは非常に遅くするものです、私は静的なJSONオブジェクトを返しました。最初はSpreadsheetlightを使用していましたが、SmartXLSを使用していますが、これはスプレッドシートライトよりもはるかに高速でした。 – Basvo

関連する問題