powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Почему преобразование в IE работает медленно?
4 сообщений из 4, страница 1 из 1
Почему преобразование в IE работает медленно?
    #33566557
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
записей около 8 тысяч

xslt:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
<?xml version="1.0" encoding="Windows-1251" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
	<xsl:output method="html" indent="no" encoding="windows-1251" />
	<xsl:decimal-format name="rus" decimal-separator=',' grouping-separator=' ' />
	<xsl:template match="/">
		<table id="gridBodyTable" class="gridData" cellSpacing="0" cellPadding="0" name="Policy">
			<xsl:attribute name="currPage">
				<xsl:value-of select="//currPage" />
			</xsl:attribute>
			<xsl:attribute name="allPages">
				<xsl:value-of select="//allPages" />
			</xsl:attribute>
			<colgroup>
				<col width="20" />
				<col width="16" />
        <col width="16" />
				<col width="2" />
				<col/>
				<col width="2" />
				<col/>
				<col width="2" />
				<col/>
				<col width="2" />
				<col/>
				<col width="2" />
				<col/>
				<col width="2" />
				<col/>
				<col width="2" />
				<col/>
        <col width="2" />
        <col/>        
				<col width="2" />
				<col/>
				<col width="2" />
				<col/>
				<col width="2" />
				<col width="16" />
			</colgroup>
			<tbody>
				<xsl:for-each select="//Table">
					<tr class="Data">

						<xsl:attribute name="id">
							<xsl:value-of select="PolicyID" />
						</xsl:attribute>

            <xsl:attribute name="AgentID">
              <xsl:value-of select="AgentID" />
            </xsl:attribute>
            
						<td style="padding-left: 0px">
							<input type="checkbox" style="border: 0px">
								<xsl:attribute name="id">
									<xsl:value-of select="PolicyID" />
								</xsl:attribute>
							</input>
							<span style="display:none">
								<xsl:value-of select="DocStatusID" />
							</span>
						</td>
            <td style="padding-left: 0px">
              <img height="16" width="16" align="absMiddle">
                <xsl:attribute name="src">
                  <xsl:value-of select="Img" />
                </xsl:attribute>
                <xsl:attribute name="title">
                  <xsl:value-of select="AddProgrammTitle" />
                </xsl:attribute>                
              </img>
            </td>
						<td style="padding-left: 0px">
							<img src="img/grid_r.gif" height="16" width="16" title="Отобразить дополнительную информацию" align="absMiddle"></img>
						</td>
						<td> </td>
						<td onmouseover="this.title = this.innerText">
							<xsl:value-of select="PolicyNo" />-<xsl:value-of select="Series" />
						</td>
						<td> </td>
						<td onmouseover="this.title = this.innerText">
							<xsl:value-of select="IssueDate" />
						</td>
						<td> </td>
						<td onmouseover="this.title = this.innerText">
								<xsl:value-of select="Insurant" />
							</td>
							<td> </td>
							<td onmouseover="this.title = this.innerText">
							<xsl:if test="CountryEn != ' '">
								<xsl:value-of select="CountryEn" />
							</xsl:if>
							<xsl:if test="CountryEn = ' '">
								<xsl:value-of select="Symbol" />
							</xsl:if>
						</td>
						<td> </td>
						<td align="right" onmouseover="this.title = this.innerText">
							<xsl:value-of select="format-number(TotalPaymentBrutto, '### ##0,00', 'rus')" />
						</td>
						<td> </td>
						<td align="right" onmouseover="this.title = this.innerText">
							<xsl:value-of select="format-number(TravelCommission, '##0', 'rus')" />
						</td>
						<td> </td>
						<td align="right" onmouseover="this.title = this.innerText">
							<xsl:value-of select="format-number(AccidentCommission, '##0', 'rus')" />
						</td>
						<td> </td>
						<td align="right" onmouseover="this.title = this.innerText">
							<xsl:value-of select="format-number(CancelationCommission, '##0', 'rus')" />
						</td>
						<td> </td>
            <td align="right" onmouseover="this.title = this.innerText">
              <xsl:value-of select="format-number(AddProgCommission, '##0', 'rus')" />
            </td>
            <td> </td>            
						<td style="color: blue" onmouseover="this.title = this.innerText">
							<xsl:value-of select="Agent" />
						</td>
						<td> </td>
						<td name="flagTD">
							<xsl:attribute name="style">
								background-color:<xsl:value-of select="Color" />;
							</xsl:attribute>
							<img height="10" width="10" title="" align="absMiddle">
								<xsl:attribute name="src">
									img/<xsl:value-of select="ImgUrl" />
								</xsl:attribute>
								<xsl:attribute name="title">
									<xsl:value-of select="concat('Договор ',Title)" />
								</xsl:attribute>
							</img>
						</td>
					</tr>
				</xsl:for-each>
			</tbody>
		</table>
	</xsl:template>
</xsl:stylesheet>

xml:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
- <NewDataSet>
- <Table>
  <PolicyID> 27499 </PolicyID> 
  <TariffPlanId> 4 </TariffPlanId> 
  <PolicyNo> 1012170 </PolicyNo> 
  <Series> 361 </Series> 
  <IssueDate> 13 . 02 . 2006 </IssueDate> 
  <Insurant>PUSTOVOYT NADEZDA</Insurant> 
  <DateFrom> 24 . 01 . 2006 </DateFrom> 
  <Days> 3 </Days> 
  <DateTo> 23 . 01 . 2007 </DateTo> 
  <Symbol>EU</Symbol> 
  <TotalPaymentBrutto> 25 . 00 </TotalPaymentBrutto> 
  <DocStatusID> 1 </DocStatusID> 
  <Title>Введен</Title> 
  <Color>#ffffff</Color> 
  <ImgUrl>flag0.gif</ImgUrl> 
  <Agent>Колесник1, Киев</Agent> 
  <CountryEn xml:space="preserve"></CountryEn> 
  <TravelCommission> 0 . 00 </TravelCommission> 
  <AccidentCommission> 0 . 00 </AccidentCommission> 
  <CancelationCommission> 0 . 00 </CancelationCommission> 
  <AddProgCommission> 0 . 00 </AddProgCommission> 
  <Img>img/1ptrans.gif</Img> 
  <AddProgrammTitle /> 
  </Table>
- <Table>
  <PolicyID> 27498 </PolicyID> 
  <TariffPlanId> 4 </TariffPlanId> 
  <PolicyNo> 1012169 </PolicyNo> 
  <Series> 361 </Series> 
  <IssueDate> 13 . 02 . 2006 </IssueDate> 
  <Insurant>PSHENYTSKYY PAVLO</Insurant> 
  <DateFrom> 18 . 01 . 2007 </DateFrom> 
  <Days> 3 </Days> 
  <DateTo> 17 . 01 . 2008 </DateTo> 
  <Symbol>EU</Symbol> 
  <TotalPaymentBrutto> 25 . 00 </TotalPaymentBrutto> 
  <DocStatusID> 1 </DocStatusID> 
  <Title>Введен</Title> 
  <Color>#ffffff</Color> 
  <ImgUrl>flag0.gif</ImgUrl> 
  <Agent>Колесник1, Киев</Agent> 
  <CountryEn xml:space="preserve"></CountryEn> 
  <TravelCommission> 0 . 00 </TravelCommission> 
  <AccidentCommission> 0 . 00 </AccidentCommission> 
  <CancelationCommission> 0 . 00 </CancelationCommission> 
  <AddProgCommission> 0 . 00 </AddProgCommission> 
  <Img>img/1ptrans.gif</Img> 
  <AddProgrammTitle /> 
  </Table>
  .........
 </NewDataSet>

на клиенте в javascript делаю
xslt = <загружаю xslt>
o = <загружаю xml>
gridDiv.innerHTML = o.transformNode(xslt);

8тысяч записей преобразовываются где-то минут 5

Можно ли это как-то сократить?
...
Рейтинг: 0 / 0
Почему преобразование в IE работает медленно?
    #33566657
VladiCh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для начала избавиться от запросов типа //node, т.к. они предполагают обход по всему дереву. Используйте вместо этого полный путь типа /root/node. А дальше уже разбираться в самом алгоритме, можно ли его упростить.
...
Рейтинг: 0 / 0
Почему преобразование в IE работает медленно?
    #33624723
mclabman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробуй разделить процесс формирования и процесс отображения.
Т.е. сначала в xml, а только потом в innerHTML.
...
Рейтинг: 0 / 0
Почему преобразование в IE работает медленно?
    #33626289
1. Оптимизация алгоритма.
2. Все преобразования в Вашем случае происходят на стороне клиента, следовательно - какие параметры рабочей станции, такова и скорость.
3. 8 тысяч записей - достаточно много для XML, я бы перенес на сторону сервера всю работу. (ASP, ASP.NET, PHP для любителей)
Для быстрой работы с XML надо много памяти и шустрый процессор, тут даже быстродействие диска не играет большой роли. Естественно, если XML получается в результате работы с СУБД (MSSQL, Oracle etc), а не с текстом

С уважением,
Измайлов Ф.В.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Почему преобразование в IE работает медленно?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]