Прежде всего вы должны отметить, что функция load()
, как и все ajax, может работать только в одном домене. Поэтому, если «внешний сайт» находится на другом домене, ajax - неправильный выбор.
Звучит как тяжелая работа, в зависимости от сложности страницы. Обратная передача может происходить во многих местах - при щелчках по изображению, при выборе комбо и т. Д. Кроме того, существуют скрытые поля, о которых следует беспокоиться, например, состояние просмотра и обработчик события - они имеют одинаковые имена на обеих страницах. Вам будет легче, если внешний сайт не имеет состояния и обратных передач.
Если страницы относительно простые, это, вероятно, можно сделать. По моему опыту, формы не очень хорошо работают в других формах, поэтому вам придется удалить одну из них (возможно, форму загруженной страницы) или разместить их одну за другой. Как вы уже упоминали, вам придется переписывать постбэки, вам нужно сериализовать данные. Возможно, вы сможете изменить эту строку, чтобы она соответствовала именам на исходной странице (если вы изменили имя состояния просмотра и т. Д., Проще изменить его обратно на сериализованную строку, чем связываться с идентификаторами), разместите ее на исходной страницы и загрузите снова.
Лично, насколько бы я ни любил jQuery, и насколько этот проект звучит интересно (и так), я бы, наверное, выбрал решение на стороне сервера. Звучит гораздо проще создать пользовательский элемент управления (который может использовать сам Ajax) или раскрыть функциональность страницы с помощью веб-служб или, что лучше, универсальных обработчиков.