2015-08-05 3 views
-1

У меня возникают проблемы с производительностью в IE, когда очень большое количество HTML возвращается в виде частичного представления из вызова AjAX к Action и затем вставляется в DOM. В некоторых случаях результирующее представление представляет собой таблицу 26 МБ, и IE пытается решить проблему с критикой памяти при попытке вставить ее в DOM.Загрузите частичное из действия в iframe

Идентификатор должен иметь возможность вместо этого иметь частичную загрузку в iframe, поэтому нет необходимости в вставке DOM, но я не уверен, как это сделать. Действие ожидает, что довольно сложный объект JSON сможет построить конструкцию полученного представления.

В конечном счете, я хочу установить цель iframe для действия, которое возвращает вид и сможет все еще передать действие, необходимый для объекта JSON, для визуализации представления. Таким образом, представление просто загружается, а не опирается на хитроумную DOM-манипуляцию IE для вставки данных.

Возможно ли это?

ответ

0

Прежде всего, удалив требование AJAX, вы также устраняете необходимость работать с JSON. JSON по-прежнему будет требовать обработки JavaScript в представлении, и JavaScript, отвечающий за разбор и манипулирование 26MB JSON-объектом, всегда будет проблемой.

Если вы согласны с переходом на iframe, вы можете передать реальную строго типизированную модель для своего вида, а затем позволить Razor сделать тяжелую работу по созданию HTML на основе модели. Для этого вы не хотите использовать частичный вид, а скорее вид без макета. Просто добавьте следующую строку в верхней части cshtml:

@{ Layout = null; } 

Затем вы просто обрабатывать все это, как и любое другое действие, которое возвращает представление в MVC.

+0

Я уже разрешаю Razor dot работать, мое действие возвращает частичную обратную передачу через AJAX, поэтому 26MB на самом деле является разметкой частичного. Вызов AJAX производится при нажатии кнопки с передачей объекта JSON на действие для создания представления. Вместо этого я хочу, чтобы на кнопке щелкнул объект JSON для загрузки представления в качестве цели для IFrame. –

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