ASP.NET Ajax Get занимает слишком много времени

executeQuery() автоматически добавляет точку с запятой в оператор при ее выполнении.

Измените строку sb.append("';"); на sb.append("'");.

Также вам нужно будет добавить пробелы в конце или в начале каждой строки ваши заявления недействительны в противном случае.

0
задан Cihan Kalmaz 13 July 2018 в 17:13
поделиться

1 ответ

Если вы хотите быстрее выполнить запрос, я бы рекомендовал Dapper. Dapper - это легкий ORM, который работает почти так же быстро, как и собственный SQL. Существует хороший учебник, который я бы рекомендовал вам прочитать здесь: https://www.c-sharpcorner.com/article/asp-net-mvc-crud-with-dapper-micro-orm/

По сути, вы будете запускать такие запросы (это не точно, но очень близко к синтаксису Dapper, не видя вашей структуры базы данных или остальной части вашего кода):

public ActionResult GetQuestionsBySubCategory(string subcattext)
{
    var subcatid = db.Query("SELECT Id from SubcategoryServices WHERE Title = @title", new { title = subcattext });
    IEnumerable<QuestionVM> questionList = db.Query("SELECT * FROM QuestionServices WHERE SubCategory_Id = @subcategoryId", new { subcategoryId = subcatid });

    return Json(questionList, JsonRequestBehavior.AllowGet);
} 

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

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

0
ответ дан Zac 17 August 2018 в 12:21
поделиться
  • 1
    Я использую шаблон универсального репозитория Entity Framework. – Cihan Kalmaz 13 July 2018 в 17:23
  • 2
    Это все еще хорошо. В вашем классе, который реализует созданный вами интерфейс репозитория, вместо использования Entity Framework вы должны использовать Dapper для извлечения данных из вашей базы данных – Zac 13 July 2018 в 17:26
  • 3
    Я считаю, что мой внешний код дорог. У меня 200 вопросов и 600 ответов. Это не проблема для EF – Cihan Kalmaz 13 July 2018 в 17:29
  • 4
    Да, я бы порекомендовал вам использовать ReactJS для вашего интерфейса, иначе ваш браузер будет перерисовывать 800 элементов, которые определенно замедляют его – Zac 13 July 2018 в 17:30
Другие вопросы по тегам:

Похожие вопросы: