Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как ускорить вывод на экран большой таблицы? ASP+MSSQL+??? 
:(
    Опции темы
Измайлов Ф.В.
Дата 29.11.2004, 15:01 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Есть таблица (MSSQL), более 5 тыс записей. Для пользователя надо выводить всю таблицу сразу (без постраничного ввода). Пока не сформируется заключительгый тэг </table>, на экране не будет отображена таблица. Есть ли способы ускорить вывод на экран?
В какую сторону смотреть и копать? XML? или еще что-то?
Спасибо.
  Вверх
ReFleX
Дата 29.11.2004, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 499
Регистрация: 26.9.2004
Где: Таллинн

Репутация: нет
Всего: 3



Попробуй указывать не все ячейки, а только нужные, если это возможно!

Это может ускорить процесс, но не намного smile
PM WWW   Вверх
Измайлов Ф.В.
Дата 1.12.2004, 13:16 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Как я и предполагал (недаром поставил +???) решение лежит в использовании связки MSSQL+XML+XSL. Вывод 6700 записей на экран занимает не более 2 секунд. НО.. это по внутренней сети. Если кого заинтересует решение, пишите - felix(at)lgn.ru
С уважением,
Измайлов Ф.В.
smile
  Вверх
Akina
Дата 1.12.2004, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: нет
Всего: 454



Цитата
Если кого заинтересует решение, пишите

продавать собрался, что ли? а коли нет - запости идею хотя бы, скелет решения, если весь код длинноват...

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


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Измайлов Ф.В.
Дата 2.12.2004, 12:23 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Не.. продавать конечно не собираюсь. просто не знаком с правилами форума.. новайс smile))
Скелет решения, на словах. 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"/>&amp;idMesto=<xsl:value-of select="@idMesto"/></xsl:attribute>
<!-- Вводим само значение -->
<xsl:value-of select="@Name"/>
</a>
</td>
</tr>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>


  Вверх
Измайлов Ф.В.
Дата 2.12.2004, 12:26 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Запостил, но с незначительной ошибкой..
<xsl:attribute name="title">To view some more details about <xsl:value-of select="dogName"/> click to dog name</xsl:attribute>
Строка из оригинального примера, всякие DogName - выкидываются... Самое главное, смысл атрибута - это тайтл к ссылке..
  Вверх
Akina
Дата 2.12.2004, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: нет
Всего: 454



Ну вот и славненько...

Цитата
не знаком с правилами форума.. новайс

Кто мешает зарегистрироваться? а заодно и правила почитаешь...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Измайлов Ф.В.
Дата 3.12.2004, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 2.12.2004

Репутация: 1
Всего: 2



Дополнение к теме.
Практика показала, что XSL-файл, то бишь шаблон, это почти HTML. У нас почти все теги принял, не получилось только <br>
Русские буквы начинает понимать после появления строки
<?xml version="1.0" encoding="WINDOWS-1251"?>

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | ASP | Следующая тема »


 




[ Время генерации скрипта: 0.0456 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.