Лучший способ автоматического обновления PartialView в ASP.NET MVC

#jquery #asp.net-mvc #asp.net-ajax

#jquery #asp.net-mvc #asp.net-ajax

Вопрос:

Я создаю приложение, которое будет работать с телевизором, и оно будет обновляться каждые X секунд.

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

Я искал и нашел очень много решений, и я хотел бы узнать лучшее для моего случая, поскольку оно выглядит довольно просто.

В качестве телевизора у меня будет фиксированная таблица (без циклов), поэтому мне нужно будет адресовать значения конкретным TDS таблиц. Идея объекта, который я отправлю в представление, выглядит примерно так:

 List<Fields> ResultList = new List<Fields>() 
                        { new Fields { Field1 = 123, Field2 = "ABC"},
                          new Fields { Field1 = 456, Field2 = "DEF"}};
  

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

 <table>
    <tr>
        <td id='row1a'></td>
        <td id='row1b'></td>
    </tr>
    <tr>
        <td id='row2a'></td>
        <td id='row2b'></td>
    </tr>
    <tr>
        <td id='row3a'></td>
        <td id='row3b'></td>
    </tr>
</table>
  

Мне нужно обратиться Field1 к rowXa и Field2 к rowXb

Я никогда ничего не делал ни с ajax, ни с jquery для его выполнения, и поэтому я полностью запутался в этом. Мое приложение уже собирает данные, упорядочивая все так, как я хочу. На данный момент мне нужно правильно обращаться к конкретным полям и не иметь для этого отправной точки.

Заранее спасибо

Ответ №1:

Мне кажется, что проще всего использовать решение «вытащить»:

  • установите таймер в JavaScript
  • Используйте это, чтобы запустить Ajax-вызов вашего контроллера, который вернет частичное представление в виде HTML
  • частичное представление — это то, которое сгенерировало таблицу в первую очередь
  • замените таблицу возвращенным HTML

Другой вариант — использовать таймер для опроса измененных значений и обновлять только отдельные строки в таблице для измененных данных.

Выбор будет зависеть от количества строк в таблице.

Обновить

Следуя приведенной ниже информации, я бы начал с самого простого решения и рассматривал другие варианты только в том случае, если есть какие-либо проблемы с отображением или синхронизацией. Установив идентификаторы строк и ячеек, было бы довольно просто просто обновить отдельные ячейки, но это может быть чрезмерным.

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

Комментарии:

1. Спасибо за ответ. Таблица короткая (не может иметь полосу прокрутки), но каждый TD отображается (около 120 полей)

2. Какова вероятная частота изменения данных и насколько важно иметь «быстрые» обновления?

3. Каждые 1-2 минуты.. не более того.

4. Не могли бы вы указать, нашли ли вы ответ полезным или нет. Есть ли дополнительная информация, которая вам нужна. Пожалуйста, оставьте отзыв.