webForumDet fria alternativet

Undvika "hängning"

.NET

8 svar · 340 visningar · startad av Han-Solo

Medlem sedan jan. 2001290 inlägg
Frågan#1

Har ett delikat litet problem.
Jag har gjort en sida där jag använder mig av ett javascript som skapas dynamiskt.

<script src=jscrip.aspx>

Det fungerar fint. aspx-sidan kan ibland behöva vänta i c:a 30s, innan svaret returneras. Fungerar oxå fint.

I sidan som anropar javascripten har jag dels vanliga url:er men oxå servercontroller. <asp:button...>. Dessa ger mig problem.

När jag försöker lämna sidan med en url går det unda, precis som det ska. MEN när jag försöker klicka på en servercontroll så vill ju servercontrollen vänta på att aspx.koden, nämnd tidigare skall bli klar, vilket tar 30s. = ohållbart!

Jag har försökt att tråda eländet utan framgång. (svaret på den andra tråden som köras skrivs aldrig till det "virtuella" javascriptet, då den ursprungliga tråden lämnat och, vad jag skulle tro, genererat en tom "virtuell" javascriptfil).

Någon som har ett tips?

Medlem sedan dec. 19991 072 inlägg
#2

Tanken är alltså att en postback görs vid klick på <asp:button> och det är då det tar tid att ladda allt igen?

Måste du ha postbacks isf? <asp:HyperLink> om det är en länk?

Medlem sedan jan. 2001290 inlägg
#3

Jo, det är det jag måste tyvärr.

Det jag gjort är en customcontrol som skall kunna användas på "vilken sida som helst"

Medlem sedan dec. 19991 072 inlägg
#4

Kan du inte i den "övergripande" sidan kolla om det är en postback eller inte och på så vis välja att inte skriva ut <script> koden?

Medlem sedan maj 20012 812 inlägg
#5

Nu vet jag inte om det går (har aldrig testat) men borde man inte kunna cacha resultatet av jscript.aspx i jscript.aspx. Och sedan när du gör en postbacks så kollar man om just detta script finns i cachen och så fall så skickar man tillbaka innehållet i cachen istället för att din jscript.aspx sida skall behöva exekveras färdigt...

Dock så är jag förvånad att du accepterar att det kan ta 30 sekunder för jscript.aspx sida att genereras, men jag vet ju inte vad det gör så det kanske är okej!

Mitt tips till dig blir om du i Page_UnLoad() eventet kan plocka ut den ström som skall skickas till webläsaren och spara den i en cache och sedan i Page_Load()/Page_Init() plocka ut denna information från en cache och då inte generera om sidan.

- Magnus

Medlem sedan jan. 2001290 inlägg
#6

Nä, tyvärr det funkar inte... javascriptet är i principt unikt varje gång. (iaf i teorin). Så någon cache funkar inte.

Vad gäller tiden 30s, så skulle jag gärna se att den var längre. :) Men jag ville inte sätta 60 eller 90s med risk för att aspx scripten timearut.

Det jag gör är att jag sätter ett "finger" på en post i databasen. Den posten ändras oerhört sällan, men då den ändras vill jag ha svaret direkt.

events i sql-server -> som skjuter det till en .cs sida så är allt biff.......

Medlem sedan maj 20012 812 inlägg
#7

??? Skall det var unikt för en Postback med? Om inte så skulle det fungerar med cachen, iallafall om det måste vara med, om du inte behöver javascriptet vid en postback så ta bortet.

Måste javascriptet vara unikt även för en postback så måste du tyvärr köra ditt script även vid en postback och då får man ta att man måste vänta.

Är dock intresserad hur du löst att du får ett event när en post i databasen har ändrats in i din ASP.NET sida utan att den måste laddas om?

- Magnus

Medlem sedan jan. 2001290 inlägg
#8

mja-a jag får klura lite till på dethär... jag bara SKA lösa det, på nått :i sätt... det svåra - som jag trode - är ju redan löst, auto updateringen... Angående den så får jag inte, pga min uppdragsgivare förmedla... jag vet, det är magstarkt att be om hjälp här och sen inte bjuda tillbaka, men så får det bli för tillfället. Kanske sen, när allt är preskriberat...

Medlem sedan jan. 2001290 inlägg
#9

Hittade ett annat, enligt mig bättre sätt att lösa detsamma på. Dock endast fungerande i IE.

snabbkika på:
http://msdn.microsoft.com/workshop/author/webservice/using.asp

eller googla efter typ webservice.htc

258 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)