![]() |
|
|
![]()
|
|
| Измайлов Ф.В. |
|
|||
|
Unregistered |
Есть таблица (MSSQL), более 5 тыс записей. Для пользователя надо выводить всю таблицу сразу (без постраничного ввода). Пока не сформируется заключительгый тэг </table>, на экране не будет отображена таблица. Есть ли способы ускорить вывод на экран?
В какую сторону смотреть и копать? XML? или еще что-то? Спасибо. |
|||
|
||||
| ReFleX |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 499 Регистрация: 26.9.2004 Где: Таллинн Репутация: нет Всего: 3 |
Попробуй указывать не все ячейки, а только нужные, если это возможно!
Это может ускорить процесс, но не намного |
|||
|
||||
| Измайлов Ф.В. |
|
|||
|
Unregistered |
Как я и предполагал (недаром поставил +???) решение лежит в использовании связки MSSQL+XML+XSL. Вывод 6700 записей на экран занимает не более 2 секунд. НО.. это по внутренней сети. Если кого заинтересует решение, пишите - felix(at)lgn.ru
С уважением, Измайлов Ф.В. |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: нет Всего: 454 |
продавать собрался, что ли? а коли нет - запости идею хотя бы, скелет решения, если весь код длинноват... А в простейшем случае быстрое решение - формировать каждую строку как отдельную таблицу. И прорисовываются оне на экране по мере закачки. Есссно таблицы без разрывов и с фиксированной шириной колонок... сделал, а после ищи изящное решение... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Измайлов Ф.В. |
|
|||
|
Unregistered |
Не.. продавать конечно не собираюсь. просто не знаком с правилами форума.. новайс
Скелет решения, на словах. MSSQL умеет вываливать SELECT в виде XML документа. Но вид не удобоваримый, не HTML. Что бы преобразовать, применяется шаблон XSL. Тот же CSS, но только для XML-документа. Теперь как это выглядит. Документ ASP <% ' Определяем константы ADO. Const adopenStatic = 3 Const adLockReadOnly = 1 Const adCmdText = 1 Const adPersistXML = 1 Const adExecuteStream = &H400 ' создание объектов Dim cmd,conn Set cmd = Server.CreateObject("ADODB.Command") Set conn = Server.CreateObject("ADODB.Connection") conn.Provider = "sqloledb" conn.Open "Data Source=localhost;Initial catalog=XXX;", "user", "password" Set cmd.ActiveConnection = conn cmd.CommandType = adCmdText cmd.CommandText = "select * from MarketPlace order by idMesto for xml auto" cmd.Properties("Output Stream") = Response cmd.Properties("xml root") = "root" ' полный путь к шаблону cmd.Properties("XSL") = "C:\Inetpub\wwwroot\first.xsl" ' Если в базе лежат данные с русскими символами cmd.Properties("Output Encoding")= "Unicode" cmd.Execute , , adExecuteStream Set cmd = nothing Set conn = nothing %> А вот текст шаблона <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <xsl:template match="/"> <table border="1" width="20%"> <!-- Тег вывода всей таблицы --> <xsl:for-each select="root/MarketPlace"> <tr bgcolor="#F5F5F5"> <!-- Выводим первую колонку --> <td><xsl:value-of select="@idMesto"/></td> <!-- Выводим вторую колонку --> <td> <!-- Хотим превратить данные в этой колонке в ссылку --> <a> <!-- Почему то не понимает русский текст --> <xsl:attribute name="title">To view some more details about <xsl:value-of select="dogName"/> click to dog name</xsl:attribute> <!-- Заполняем аттрибуты --> <xsl:attribute name="href">?Name=<xsl:value-of select="@Name"/>&idMesto=<xsl:value-of select="@idMesto"/></xsl:attribute> <!-- Вводим само значение --> <xsl:value-of select="@Name"/> </a> </td> </tr> </xsl:for-each> </table> </xsl:template> </xsl:stylesheet> |
|||
|
||||
| Измайлов Ф.В. |
|
|||
|
Unregistered |
Запостил, но с незначительной ошибкой..
<xsl:attribute name="title">To view some more details about <xsl:value-of select="dogName"/> click to dog name</xsl:attribute> Строка из оригинального примера, всякие DogName - выкидываются... Самое главное, смысл атрибута - это тайтл к ссылке.. |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: нет Всего: 454 |
Ну вот и славненько...
Кто мешает зарегистрироваться? а заодно и правила почитаешь... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Измайлов Ф.В. |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 22 Регистрация: 2.12.2004 Репутация: 1 Всего: 2 |
Дополнение к теме.
Практика показала, что XSL-файл, то бишь шаблон, это почти HTML. У нас почти все теги принял, не получилось только <br> Русские буквы начинает понимать после появления строки <?xml version="1.0" encoding="WINDOWS-1251"?> |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | ASP | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |