|
|
|
Forum Guru
      
участник
Last Login: 20.03.2008 12:32
Сообщ.: 53,
Visits: 470
|
|
| На стороне клиента страница asp формирует документ на основе информации из базы данных. Как сохранить вид этого документа на сервере, чтобы иметь возможность впоследствии выдать его клиенту по требованию точно в таком же виде. Формировать его заново с помощью той же страницы asp не предлагать. Этот путь понятен и не подходит. Как сохранить именно экранный вид документа и вытаскивать его из БД?
|
|
|
|
|
Supreme Being
      
участник
Last Login: 28.06.2007 10:01
Сообщ.: 244,
Visits: 2 268
|
|
| Не очень понятен вопрос, но мне кажется можно так: - результат, используя MSXML2.ServerXMLHTTP, сохраняем в файле под средством Stream.SaveToFile - затем в БД регить юзера, когда и что грузил и какой файл соответствует... ну и отправлять энтот файл. Звиняй, если не подойдет метод, т.к. не очень понятен мотив извращения, хотя идея понятна... Без обработки ASP-а все-равно обойтись не выйдет.
|
|
|
|
|
Forum Guru
      
участник
Last Login: 20.03.2008 12:32
Сообщ.: 53,
Visits: 470
|
|
mentos_has_arisen (08.01.2007)
Не очень понятен вопрос, но мне кажется можно так: - результат, используя MSXML2.ServerXMLHTTP, сохраняем в файле под средством Stream.SaveToFile - затем в БД регить юзера, когда и что грузил и какой файл соответствует... ну и отправлять энтот файл. Звиняй, если не подойдет метод, т.к. не очень понятен мотив извращения, хотя идея понятна... Без обработки ASP-а все-равно обойтись не выйдет. Этот MSXML2.ServerXMLHTTP где позволяет сохранять файлы? На клиенте или на сервере? Если на сервере, то это небезопасно и ограничивается администрацией хостинга наверняка, если на клиенте, то встает задача их обратной заказчки на сервер в БД - а хотелось бы обойтись без лишних клиокв со стороны юзера все это делать. Юзера все итак авторизованы, сайт закрытый. Можно чуть подробнее, никогда не имел дела с MSXML2.ServerXMLHTTP. Спасибо за помощь
|
|
|
|
|
Supreme Being
      
модератор
Last Login: 29.10.2007 14:45
Сообщ.: 1 833,
Visits: 16 863
|
|
| С самого начала: "На стороне клиента страница asp формирует документ на основе информации из базы данных". Эта фраза противоречит сама себе. На стороне клиента asp страница делать ничего не может - серверный сценарий выполняется на сервере, а на клиенте выполняется клиентский сценарий (обычно JavaScript). Описывай задачу точнее. Есть база с докумнетами, которые генерируются под определенных пользователей? Т.е. скажем, подставляется имя пользователя в шаблон? Тогда я не понимаю - зачем их отдельно сохранять? На случай изменения шаблона? Ну пусть даже так. Что тогда мешает перед отправкой кода клиенту сохранять получившуюся страницу в базу? И сделать какую-либо другую ASP страницу, которая позволяет по ID документа вытягивать его из БД?
|
|
|
|
|
Forum Guru
      
участник
Last Login: 20.03.2008 12:32
Сообщ.: 53,
Visits: 470
|
|
Alexey Spirin (08.01.2007)
С самого начала: "На стороне клиента страница asp формирует документ на основе информации из базы данных". Эта фраза противоречит сама себе. На стороне клиента asp страница делать ничего не может - серверный сценарий выполняется на сервере, а на клиенте выполняется клиентский сценарий (обычно JavaScript). Описывай задачу точнее. Есть база с докумнетами, которые генерируются под определенных пользователей? Т.е. скажем, подставляется имя пользователя в шаблон? Тогда я не понимаю - зачем их отдельно сохранять? На случай изменения шаблона? Ну пусть даже так. Что тогда мешает перед отправкой кода клиенту сохранять получившуюся страницу в базу? И сделать какую-либо другую ASP страницу, которая позволяет по ID документа вытягивать его из БД? Согласен, я неправильно выразился. Страница формируется на сервере на основе кучи данных из таблиц БД. В редких случаях эти данные меняются, тогда старые значения удаляются из базы и нужны крайне редко только для истории. Нет нужды запоминать их значения в таблицах с пометкой "изменено" - их слишком много, в разных таблицах. Есть идея запомнить всю страницу целиком - так как она выглядела с измененными данными, чтобы при необходимости показать именно в таком виде юзеру. Но как это лучше сделать?
|
|
|
|
|
Supreme Being
      
участник
Last Login: 28.06.2007 10:01
Сообщ.: 244,
Visits: 2 268
|
|
Как сохранить вид этого документа на сервере Таким механизмом, как я описывал выше. Вот как делается у меня. Правда у меня asp-а выдает XML Resours="Твой.асп?..." ' путь к твоему аспу со всеми параметрами Set objSrvHttp = Server.CreateObject("MSXML2.ServerXMLHTTP") Call objSrvHTTP.open("GET", Resours, False) objSrvHTTP.send() 'проверка статуса загрузки страницы If (200 <> objSrvHTTP.status) Then Response.Write("HTTP Error: " & objSrvHTTP.status)
Else
Dim objStream Set objStream = Server.CreateObject("ADODB.Stream") objStream.Type = 1 ' adTypeBinary objStream.Open 'запись кода в поток objStream.Write(objSrvHTTP.responseBody) 'созранение файла Call objStream.SaveToFile(Server.MapPath("aaaa/aaa.html"), 2) objStream.Close() Set objStream = Nothing Set objSrvHTTP=Nothing End If
Дале дело техники... файл есть на сервере, можно выводить его в дальнейшем.
|
|
|
|
|
Supreme Being
      
модератор
Last Login: 29.10.2007 14:45
Сообщ.: 1 833,
Visits: 16 863
|
|
| Ага. А представь, во сколько раз больше по объему будут занимать "готовые" документы. Кроме того я так и не понял - почему нельзя ПЕРЕД первой выдачей клиента сохранить доку в базу?
|
|
|
|
|
Supreme Being
      
участник
Last Login: 28.06.2007 10:01
Сообщ.: 244,
Visits: 2 268
|
|
| 100% согласен с Вами, Alexey Spirin. Я просто ответил на вопрос: Как сохранить вид этого документа на сервере Конечно можно было сразу закатать в БД. Хотя, с другой стороны, БД разбухнет как тампон в рекламе. А если использует ACCESS... кирдык. ПО-мне, конечно, БД лучше... тогда можно было б код хранить для каждого юзверя... ну если шаблоны вывода предлагается использовать разные для групп пользователей. Если же вывод у всех одинаковый, то лучше файлом хранить... сейчас с местом на хостингах ни где не скупятся, чего не скажешь об ограничениях в размере БД. Все равно тампон полный :)
|
|
|
|
|
Forum Guru
      
участник
Last Login: 20.03.2008 12:32
Сообщ.: 53,
Visits: 470
|
|
mentos_has_arisen (09.01.2007)
Пошел по этому пути, получил на сстроке Call objSrvHTTP.open("GET", Resours, False) ошибку msxml3.dll error '80004005' Unspecified error Пока не понял из-за чего.
|
|
|
|
|
Supreme Being
      
участник
Last Login: 28.06.2007 10:01
Сообщ.: 244,
Visits: 2 268
|
|
|
|
|
|
Forum Guru
      
участник
Last Login: 20.03.2008 12:32
Сообщ.: 53,
Visits: 470
|
|
| C ошибкой разобрался. Путь к странице я задавал относительный, а необходим полный. Поскольку давать доступ для IUSR на запись в папку на сервере небезопасно, можно ли записать html сразу в БД, если да то как?
|
|
|
|
|
Forum Guru
      
участник
Last Login: 20.03.2008 12:32
Сообщ.: 53,
Visits: 470
|
|
mentos_has_arisen (09.01.2007)
Конечно можно было сразу закатать в БД Подскажи как это сделать минуя сохранение файла на диске? P.S. And mentos will arise!
|
|
|
|