ASP vs. DHTML или как взять лучшее?
От: Аноним  
Дата: 29.01.03 08:32
Оценка:
Привет всем! стоит задача написать Web-клиента, будет работать по местной сети. В веб-программировании я новичек, в программировании — можно скачать что нет Вот исходные данные:

Есть COM+ сервер, через него пользователи работают с БД. Вроде пользовать asp как то сердцу милее — не надо на коиентской машине ничего ставить, ни прокси ничего, кроме IE, но смущает вот что — очень уж траффик будет большим как мне кажется. Ведь например в DHTML, юзверь нажал кнопку на странице — это клиентское событие, делаем вызов DCOM или что то еще — результат показываем в виде HTML, например в каком то объекте через свойство innerHTML. Тут все красиво — по сети гоняются только данные, HTML генерится на клиенте. НО, не хочю я вот давать доступ к COM+ серверу на клиентских машинах, ну вот не нравится это мне... как же быть? можно как то сделать что бы компонент создавался на стороне сервера, там же делался вызов какого то метода — но хтмл чтобы генерить на стороне клиента... наверно я я хочу невозможного...
Re: ASP vs. DHTML или как взять лучшее?
От: DOOM Россия  
Дата: 29.01.03 09:06
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Привет всем! стоит задача написать Web-клиента, будет работать по местной сети. В веб-программировании я новичек, в программировании — можно скачать что нет Вот исходные данные:


А>Есть COM+ сервер, через него пользователи работают с БД. Вроде пользовать asp как то сердцу милее — не надо на коиентской машине ничего ставить, ни прокси ничего, кроме IE, но смущает вот что — очень уж траффик будет большим как мне кажется. Ведь например в DHTML, юзверь нажал кнопку на странице — это клиентское событие, делаем вызов DCOM или что то еще — результат показываем в виде HTML, например в каком то объекте через свойство innerHTML. Тут все красиво — по сети гоняются только данные, HTML генерится на клиенте. НО, не хочю я вот давать доступ к COM+ серверу на клиентских машинах, ну вот не нравится это мне... как же быть? можно как то сделать что бы компонент создавался на стороне сервера, там же делался вызов какого то метода — но хтмл чтобы генерить на стороне клиента... наверно я я хочу невозможного...


Можешь просто юзать hidden frame — туда чтобы приходили нужные данные(с помощью того же asp), а клиентский скрипт формировал из них нужный HTML. Примерно следующее:
Сервер отправлает: <script>mainFrame.AddBla("bla-bla",destId);</script>

Клиент:
function AddBla(text,dest)
{
   document.All(dest).innerText = text;
}


По сути это можно делать с помощью MSXMLHTTP — но оно глючновато при медленной связи работает.
Re[2]: ASP vs. DHTML или как взять лучшее?
От: Аноним  
Дата: 29.01.03 09:18
Оценка:
DOO>Можешь просто юзать hidden frame — туда чтобы приходили нужные данные(с помощью того же asp), а клиентский скрипт формировал из них нужный HTML. Примерно следующее:
DOO>
DOO>Сервер отправлает: <script>mainFrame.AddBla("bla-bla",destId);</script>
DOO>

DOO>Клиент:
DOO>
DOO>function AddBla(text,dest)
DOO>{
DOO>   document.All(dest).innerText = text;
DOO>}
DOO>


Вот об этом я примерно и думал, как же оно так делается вот спасибо! Только вот не понятно — как на клиенте инициировать вызов метода на серверной стороне? т.е. как обойтись обычными HTML-объектами? или так не выйдет? ведь если я буду пользовать DTC-компонет, то я на клиентской стороне не смогу поменять его свойств? или я ошибаюсь? Хотя чего я туплю то, пусть кнопка будет DTC, результат то будет показан в html-компоненте
Re: ASP vs. DHTML или как взять лучшее?
От: Zerger Россия  
Дата: 29.01.03 09:57
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Привет всем! стоит задача написать Web-клиента, будет работать по местной сети. В веб-программировании я новичек, в программировании — можно скачать что нет Вот исходные данные:


А>Есть COM+ сервер, через него пользователи работают с БД. Вроде пользовать asp как то сердцу милее — не надо на коиентской машине ничего ставить, ни прокси ничего, кроме IE, но смущает вот что — очень уж траффик будет большим как мне кажется. Ведь например в DHTML, юзверь нажал кнопку на странице — это клиентское событие, делаем вызов DCOM или что то еще — результат показываем в виде HTML, например в каком то объекте через свойство innerHTML. Тут все красиво — по сети гоняются только данные, HTML генерится на клиенте. НО, не хочю я вот давать доступ к COM+ серверу на клиентских машинах, ну вот не нравится это мне... как же быть? можно как то сделать что бы компонент создавался на стороне сервера, там же делался вызов какого то метода — но хтмл чтобы генерить на стороне клиента... наверно я я хочу невозможного...



А как насчет использовать возможность IE работать с документами XML и преобразованием XSLT?
При этом по запросу клиента с сервера передавать данные в формате XML, а форматирование возложить на XSLT.

По моему, это должно существенно снизить трафик.
Re[3]: ASP vs. DHTML или как взять лучшее?
От: DOOM Россия  
Дата: 29.01.03 10:00
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Вот об этом я примерно и думал, как же оно так делается вот спасибо! Только вот не понятно — как на клиенте инициировать вызов метода на серверной стороне? т.е. как обойтись обычными HTML-объектами? или так не выйдет? ведь если я буду пользовать DTC-компонет, то я на клиентской стороне не смогу поменять его свойств? или я ошибаюсь? Хотя чего я туплю то, пусть кнопка будет DTC, результат то будет показан в html-компоненте


Ничего не мешает также применять эту схему в обратном порядке, т.е. буквально сабмитится форма на сервер с именем метода, а asp с помощью ф-ии eval — его вызывает(ну можно и менее извращенскими средствами)
Re[2]: ASP vs. DHTML или как взять лучшее?
От: Аноним  
Дата: 29.01.03 10:29
Оценка:
Z>А как насчет использовать возможность IE работать с документами XML и преобразованием XSLT?
Z>При этом по запросу клиента с сервера передавать данные в формате XML, а форматирование возложить на XSLT.

Z>По моему, это должно существенно снизить трафик.


Дело в том что у меня клиентское приложение — не простопростмоторщиек чегототам, а оператоское место по отправке сообщений (предвижу бурю недоумения) то есть работа:

Ввел ID абонента, шлепнул enter, получаем ответ сервера — можно отрпалять сообщения или нет, потом набираем текст, шлепаем enter — сообщение отправляется... вобщем грубо говоря нужно что то вроде remote scripting, но оно ведь в JS, а я его не знаю. то есть в идеале мне надо вызывать методы сервера и как то получать ответы
Re[4]: ASP vs. DHTML или как взять лучшее?
От: Аноним  
Дата: 29.01.03 10:30
Оценка:
DOO>Ничего не мешает также применять эту схему в обратном порядке, т.е. буквально сабмитится форма на сервер с именем метода, а asp с помощью ф-ии eval — его вызывает(ну можно и менее извращенскими средствами)

Так, в от это еще интереснее... а как можно менее извращенскими средствами? А сабмитить можно какой то скрытый фрейм?
Re[5]: ASP vs. DHTML или как взять лучшее?
От: DOOM Россия  
Дата: 29.01.03 11:00
Оценка:
Здравствуйте, Аноним, Вы писали:

DOO>>Ничего не мешает также применять эту схему в обратном порядке, т.е. буквально сабмитится форма на сервер с именем метода, а asp с помощью ф-ии eval — его вызывает(ну можно и менее извращенскими средствами)


А>Так, в от это еще интереснее... а как можно менее извращенскими средствами? А сабмитить можно какой то скрытый фрейм?


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

Менее извращенские относились только к функции eval, т.е. вызов метода можно делать так:

Клиент:

<form action="callMethod1.asp">

  <input type="submit" value="Вызвать метод1"/>
</form>

Сервер(callMethod1.asp):

 var COMObj = Server.CreateObject("SomeCOMServer.SomeComeObj");
 COMObj.Method1();
Re[2]: ASP vs. DHTML или как взять лучшее?
От: Bob Kotl Россия  
Дата: 30.01.03 05:35
Оценка:
Здравствуйте, Zerger, Вы писали:

Z>Здравствуйте, Аноним, Вы писали:


А>>Привет всем! стоит задача написать Web-клиента, будет работать по местной сети. В веб-программировании я новичек, в программировании — можно скачать что нет Вот исходные данные:


Z>А как насчет использовать возможность IE работать с документами XML и преобразованием XSLT?

Z>При этом по запросу клиента с сервера передавать данные в формате XML, а форматирование возложить на XSLT.
Z>По моему, это должно существенно снизить трафик.
Целиком и полностью поддерживаю, сам так и поступаю — доволен по уши: клиентский код XSLT небольшой, и JS я знаю правда, работать будет только под IE, причём только на PC, бо Mac'овская версия MSXML парсера не имеет (поправьте меня, если я не прав); но мне (точнее, заказчику) нужен только IE.
Конечно, без JSa тут никак, такова селяви, но зато по сети гоняются только данные, и ничего больше (первый раз на клиента грузится ещё XSL-шаблон).
Вот только надо учесть одну вещь: IE 5.0 и выше идёт стандартно с MSXML 2.0. Там отсутствуют многие хорошие фичи стандарта XSLT 99-го года; он сделать по XSLT December 1998 working draft, хотя MS по своему обыкновению его слегка и расширил, так что жить в принципе можно. Информацию о возможностях и использовании MSXML 2.0 можно найти в MSDNах 99-го года; из более поздних они её выкосили, потому как потом уже вышел MSXML 3.0.
Re[3]: ASP vs. DHTML или как взять лучшее?
От: Аноним  
Дата: 30.01.03 06:47
Оценка:
А как вы делали передачу xml на клиента? в какйо то объект в скрытом фрейме??? или прямо — Response.Write?
Re[3]: ASP vs. DHTML или как взять лучшее?
От: Аноним  
Дата: 30.01.03 06:49
Оценка:
А как вы делали передачу xml на клиента? в какйо то объект в скрытом фрейме??? или прямо — Response.Write?
Re[4]: ASP vs. DHTML или как взять лучшее?
От: Bob Kotl Россия  
Дата: 30.01.03 06:52
Оценка:
Здравствуйте, Аноним, Вы писали:

А>А как вы делали передачу xml на клиента? в какйо то объект в скрытом фрейме??? или прямо — Response.Write?

хм... вообще-то у меня часть XMLей просто в статике лежит... но часть формируется в серверном скрипте. К сожалению, ASP пока не трогал; наверное, с помощью Response.Write это можно сделать, т.е. просто текстом передавать; я тоже так делаю.
Re[5]: ASP vs. DHTML или как взять лучшее?
От: Аноним  
Дата: 30.01.03 08:20
Оценка:
BK>хм... вообще-то у меня часть XMLей просто в статике лежит... но часть формируется в серверном скрипте. К сожалению, ASP пока не трогал; наверное, с помощью Response.Write это можно сделать, т.е. просто текстом передавать; я тоже так делаю.

Понятно, вот только у меня компоненты возвращают ADODB.Recordset-ы, в асп я их коневертаю в хмл — получаю не только данные но и схему для них... а ведь схема то по идее можно хранить статически на клиенте и по сети одно и тоже не гонять... как же мне быть? как генерить xml из рекордсетов?
Re[6]: ASP vs. DHTML или как взять лучшее?
От: Zerger Россия  
Дата: 30.01.03 08:46
Оценка: 3 (1)
Здравствуйте, Аноним, Вы писали:

А>Понятно, вот только у меня компоненты возвращают ADODB.Recordset-ы, в асп я их коневертаю в хмл — получаю не только данные но и схему для них... а ведь схема то по идее можно хранить статически на клиенте и по сети одно и тоже не гонять... как же мне быть? как генерить xml из рекордсетов?


Вот только вчера использовал:


' получаем rs
........
Set rs = Comm.Execute

' преобразуем его в XML
set xml=convertRsToXML(rs)

' на сервере производим XSLT преобразование исходного XML в требуемый формат
' здесь folder - итоговое название узлов
str="<root>"&xml.transformNode(getXSL_For("folder"))&"</root>"

' отправляем XML клиенту
response.write str


'================ ФУНКЦИИ =================================
function getXSL_For(name)
    dim xsl, result
    result ="<xsl:stylesheet xmlns:xsl=""http://www.w3.org/1999/XSL/Transform"" xmlns:z=""#RowsetSchema"" version=""1.0"">"&_
            "<xsl:output method=""html""/><xsl:template match=""z:row""><xsl:element name="""+name+"""><xsl:copy-of select=""@*""/></xsl:element></xsl:template>"&_
            "</xsl:stylesheet>"
    set xsl = Server.CreateObject("Msxml2.FreeThreadedDOMDocument")
    xsl.LoadXML(result)
    set getXSL_For=xsl
    set xsl=Nothing
end function

function convertRsToXML(inRS)
    dim xml
    set xml = Server.CreateObject("Msxml2.FreeThreadedDOMDocument")
    inRS.Save xml, adPersistXML    
    set convertRsToXML = xml
end function



в результате из исходного XML типа:

<xml xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema">
    <s:Schema id="RowsetSchema">
        .........
    </s:Schema>
    <rs:data>
        <z:row Tag="1" id="{00000000-0000-0000-0000-000000000001}" Name="Новости" Published="True" SOrder="0" Level="0"/>
        <z:row Tag="1" id="{00000000-0000-0000-0000-000000000002}" Name="Обо мне" Published="True" SOrder="1" Level="0"/>
        .........
    </rs:data>
</xml>


мы получаем и отправляем клиенту XML следующего вида:

<root>
  <folder Tag="1" id="{00000000-0000-0000-0000-000000000001}" Name="Новости" Published="True" SOrder="0" Level="0"></folder>
  <folder Tag="1" id="{00000000-0000-0000-0000-000000000002}" Name="Обо мне" Published="True" SOrder="1" Level="0"></folder>
  ...
</root>
Re[7]: ASP vs. DHTML или как взять лучшее?
От: Аноним  
Дата: 30.01.03 09:16
Оценка:
Вот спасибо! Это то что мне нужно
Вот только не понял — а folder — это что то для Вашего приложения нужное?
А как вы потом этот хмл пользуетет на клиенте? Я вот думал преобразовывать их опять в Recordset-ы но думаю это лишнее
Re[8]: ASP vs. DHTML или как взять лучшее?
От: Zerger Россия  
Дата: 30.01.03 09:27
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Вот спасибо! Это то что мне нужно

Если понравилось — поставь оценочку ...

А>Вот только не понял — а folder — это что то для Вашего приложения нужное?

По поводу folder — это произвольное название узла. Просто исходя из структуры моей информации было бы логично назвать так узлы.
Название узлов формируются по входному параметру функции getXSL_For.


А>А как вы потом этот хмл пользуетет на клиенте? Я вот думал преобразовывать их опять в Recordset-ы но думаю это лишнее


На клиенте было бы самое оптимальное использовать методы DOM. Благо IE их хорошо поддерживает. Примеры можно посмотреть здесь http://www.dhtml.ru
Re[9]: ASP vs. DHTML или как взять лучшее?
От: MentalSky  
Дата: 30.01.03 09:46
Оценка:
А>>Вот только не понял — а folder — это что то для Вашего приложения нужное?
Z>По поводу folder — это произвольное название узла. Просто исходя из структуры моей информации было бы логично назвать так узлы.
Z>Название узлов формируются по входному параметру функции getXSL_For.

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

Z>

А>>А как вы потом этот хмл пользуетет на клиенте? Я вот думал преобразовывать их опять в Recordset-ы но думаю это лишнее
Z>На клиенте было бы самое оптимальное использовать методы DOM. Благо IE их хорошо поддерживает. Примеры можно посмотреть здесь http://www.dhtml.ru

Спасибо, посмотрю... вот бы понять по русски — что есть XSLT???
Re[9]: ASP vs. DHTML или как взять лучшее?
От: MentalSky  
Дата: 30.01.03 09:53
Оценка:
Z>Если понравилось — поставь оценочку ...

уже
Re[10]: ASP vs. DHTML или как взять лучшее?
От: Zerger Россия  
Дата: 30.01.03 10:07
Оценка:
Здравствуйте, MentalSky, Вы писали:

MS>Хех, крыша у меня тихо едет неспеша... узлы — это что? в случае иерархического набора записей?

Если не вдаваться в семантические тонкости, то узел (вообще-то в документации по XML он называется element) есть просто тег(как он зовётся в HTML .

В моем примере <rs:data/>, <z:row/> <root/> и <folder/> — это всё узлы(или же элементы)


MS>Спасибо, посмотрю... вот бы понять по русски — что есть XSLT???


Цитата из спецификации: XSL Transformations (XSLT)

This specification defines the syntax and semantics of XSLT, which is a language for transforming XML documents into other XML documents.

Так строка
    result ="<xsl:stylesheet xmlns:xsl=""http://www.w3.org/1999/XSL/Transform"" xmlns:z=""#RowsetSchema"" version=""1.0"">"&_
            "<xsl:output method=""html""/><xsl:template match=""z:row""><xsl:element name="""+name+"""><xsl:copy-of select=""@*""/></xsl:element></xsl:template>"&_
            "</xsl:stylesheet>"

содержит XSLT код для трансформации одного XML в другой.

Если интересует, поищи в этом форуму ссылки на пример использования XSLT, тут уже было много подобного..
Re[11]: ASP vs. DHTML или как взять лучшее?
От: MentalSky  
Дата: 30.01.03 10:35
Оценка:
Z>Если не вдаваться в семантические тонкости, то узел (вообще-то в документации по XML он называется element) есть просто тег(как он зовётся в HTML .

а, ясно

Z>В моем примере <rs:data/>, <z:row/> <root/> и <folder/> — это всё узлы(или же элементы)


Z>Цитата из спецификации: XSL Transformations (XSLT)

Z>This specification defines the syntax and semantics of XSLT, which is a language for transforming XML documents into other XML documents.

Z>Если интересует, поищи в этом форуму ссылки на пример использования XSLT, тут уже было много подобного..


ок, спасибо!!!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.