23. marts 2001 - 15:26Der er
16 kommentarer og 2 løsninger
dynamisk asp include/server.execute i samme page scope
Jeg har følgende problemstilling, som før har drevet mig til vanvid, og nu gør det igen. Jeg tvivler nu på at nogen kan løse det, men verden er jo forunderlig.
Jeg skal være i stand til at kunne udføre en dynamisk include/server.execute på en asp-fil, hvor jeg fra den kaldte asp-fil har adgang til kalder-sidens variabler.
Lad mig understrege følgende:
1. SSI kan ikke bruges, da filer ikke kan inkluderes dynamisk.(ironisk nok så er der ingen scope-problemer her)
2. Server.Execute kan inkludere dynamisk. Til gengæld så er det kun kalder-sidens context som bliver overført til den kaldte side. Dvs. request, response, session og application, men ikke script variabler og object referencer. Og det er desværre lige netop script variabler og object referencer som jeg skal bruge i den kaldte side.
3. Jeg har hidtil brugt en Execute-statement til at generere asp\'en dynamisk. Denne løsning er dog ikke holdbar, da al html skal udskrives med response.write. Denne metode er ikke acceptabelt i dette projekt.
4. FileSystemObject kan selvfølgelig heller ikke løse problemet, da der skal kunne eksekveres asp i den kaldte fil.
5. Jeg gider ikke høre på hvad php og \"de andre\" kan gøre.
alernativt mener jeg du kan benytte RSGetASPObject til ditt formål. dette faller inn under det som kalles remote scripting. jeg har selv ikke koden noe som benytter dette, men jeg har tilgang til \"eksempelkode\"...
du kan jo ellers lese litt om remote scripting her:
En løsning kunne måske være at lave et komponent der dynamisk opretter asp filerne. En slags ASP fil generator, som generere automatisk. Spørgsmålet er bare om du kan få motoren dynamisk nok. Måske denne løsning også kunne involvere et hastigheds problem.
jeg har tænkt på en løsning, hvor jeg f.eks. via en komponent genererer mine asp-sider og gemmer dem i nogle faste filnavne, således at jeg kan SS-include dem fra ASP. Men det er alt for resource-krævende.
begge artikler løser ikke problemet med, at jeg skal kunne overføre scope fra kalderen til den kaldte side. Jeg er godt i gang med remote scripting, og det ser faktisk lovende ud.
Desværre har ingen af forslagene vist sig at være specielt brugbare. Remote scripting kan givetvis \"vrides\" til en umiddelbar løsning, men det er bare ikke holdbart nok. I eksperten.dk\'s gode open-source ånd vil jeg skrive hvad jeg er noget frem til på egen hånd:
Som sagt er hele problemstillingen, at kalderen og den kaldte side ikke kan dele scope, udover intrinsic objects som session, application, osv. Dette skaber både problemer mht. til \"almindelige\" variabler og også objekt-referencer til en given com/activex-komponent. Det er lidt surt at skulle bruge late-binding CreateObject på 10+ asp-sider, som skal server.execute\'s :-]
Mht. at kunne bruge den samme objekt-reference til en komponent på tværs af alle asp-sider, har jeg benyttet en beskidt, men umiddelbart acceptabel, metode: jeg lægger referencen i en session-variabel og dræber den umiddelbart efter at alle sider er blevet kaldt.
Igennem min komponent kører jeg server.execute x antal gange, og hver eneste gang sætter jeg en public variabel umiddelbart inden kaldet, som jeg således kan hente fra den aktuelle asp-side. F.eks.: Set currentObject = Session(\"komponent\").Class.CurrentObjectVariabel
Jeg vil gerne høre kommentarer til denne fremgangsmåde, inden jeg begynder at dele point ud.
vel...jeg tror faktisk du har støtt på det som er en begrensning innen ASP. Jeg har enda ikke funnet en måte å gjøre dette på (bortsett fra å skifte til JSP). Problemet ligger i at man ikke har noen underliggende \"containere\" i ASP som man kan legge objekter inn i, og derfra hive dem ut på kaldende side...
jeg kan desverre ikke komme med noen andre tips enn de jeg har kommet med...
med tanke på din fremgangsmåte: av og til så må man kode seg litt stygt ut av en problemstilling. Det er selvfølgelig ikke optimalt, men jeg kan ikke se en annen løsning på ditt problem ut i fra de kriteriene du har satt opp. Disse merkelige hacks man av og til er nødt til å lage, er et resultat av teknologien sin begrensning, samt de arbeidforhold man sitter under.
Mht. min fremgangsmåde med at hive data ud via en variabel i komponenten, så lægger jeg selvfølgelig disse data i en structure(et dictionary-object f.eks.) eller xml, så jeg kun skal lave et enkelt roundtrip mellem den kaldte asp-side og komponenten.
Har du erfaring i at lave content management tools?
vel det kommer an på hva du mener med content management tools...om du tenker i \"Intervowen\" definisjonen av type system eller om du mener bare en generel definisjon av strukturering av innhold....
object-orientert type i ASP er vel å leke litt med livet som innsats ;)
men jo...jeg har bygget mange typer av content management system (CMS) som bygger på relasjonelle databaser...det er det jeg gjør hver dag. *men* object-orienteringen tar JSP/Java seg av for min del...
hehe. asp\'en bliver jo blot benyttet som præsentationslag. Det er komponenten og xml\'en som driver værket. Men jo - der har været en del probs med asp. Overvejede i en kort stund, at bruge cold fusion i stedet.
det ligger desverre beskyttet bak firmaet sitt vpn... :-|
/nute
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.