DOM и Javascript - PullRequest
       7

DOM и Javascript

1 голос
/ 12 февраля 2009

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

После того, как пользователь переместил строки вокруг, когда я делаю источник просмотра, я вижу HTML в исходном состоянии (до того, как пользователь внес какие-либо изменения).

Может кто-нибудь объяснить, почему это так? Насколько я понимаю, когда мы выполняем какие-либо операции DOM, основной HTML-код также будет изменен.

РЕДАКТИРОВАТЬ: означает ли это на стороне сервера, что при попытке получить состояние после изменений пользователя я смогу получить то, что мне нужно? Я использую C # / ASP.NET. Может ли это быть из-за того, что это таблица HTML (а не элемент управления ASP.NET Server), что она не поддерживает состояние изменений?

Ответы [ 7 ]

5 голосов
/ 12 февраля 2009

Когда вы просматриваете источник, вы просматриваете контент, загруженный браузером изначально. Чтобы увидеть текущее состояние, используйте плагин вроде Firebug для Firefox или DebugBar для IE

2 голосов
/ 12 февраля 2009

@ Ваше редактирование:

Если у вас нет какого-либо сценария, который сообщает серверу, что такое обновленный заказ (т. Е. Javascript вызывает сценарий на стороне сервера, передавая ему новый заказ), ваш сервер не сможет узнать, что сделал пользователь .

1 голос
/ 12 февраля 2009

Re. Ваше редактирование - нет, вам придется самостоятельно отслеживать изменения в порядке строк.

Я предлагаю вам поставить идентификатор в каждой строке, а затем нажать кнопку «Отправить» на javascript, который просматривает порядок строк в это время и помещает разделенный запятыми список их идентификаторов в скрытое поле ввода.

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

Удачи!

0 голосов
/ 12 февраля 2009

В Google Chrome есть функция, с помощью которой вы можете щелкнуть правой кнопкой мыши на элементе и выбрать «Проверить элемент», и он показывает DOM времени выполнения.

0 голосов
/ 12 февраля 2009

Представление DOM в Firebug показывает точное состояние, в котором оно отображается в данный момент. Просмотр источника не будет.

0 голосов
/ 12 февраля 2009

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

Таким образом, вы могли бы заставить страницу сделать обратный вызов AJAX на сервер, чтобы сообщить ей, какие изменения были внесены в страницу, или вы можете использовать скрытые поля формы, которые хранят метаинформацию о HTML (в данном случае порядок строк таблицы, который будет обновляться при изменении порядка строк, а затем кнопка отправки, которая отправляет информацию об изменениях, которые были внесены обратно на сервер.

У сервера нет возможности увидеть точные изменения HTML, которые были внесены в DOM, вы предоставили ему эту информацию, отправив ее обратно на сервер.

0 голосов
/ 12 февраля 2009

Ваш браузер не отображает обновленный источник.

Есть несколько дополнений для Firefox, которые позволят вам просматривать изменения по мере их возникновения. Я предлагаю попробовать Firebug. Я считаю, что инструменты разработчика IE от MS имеют схожую функциональность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...