webForumDet fria alternativet

Att blanda ASP + JavaScript??

JavaScriptur Javascript

39 svar · 1 931 visningar · startad av Eclipse

Medlem sedan juli 20003 825 inlägg
Frågan#1

Jag har en sträng i JavaScript som jag skulle vilja på något vis skriva in i en Accessdatabas, då helst med hjälp av ASP.

Går det att anropa en funktion skriven i ASP med hjälp av JavaScript!?

Medlem sedan juni 20014 421 inlägg
#2

Du får anropa en sida som kör den funktionen/koden.

Medlem sedan mars 20041 505 inlägg
#3

Hm, nu måste vi hålla isär saker och ting. :)
ASP körs på serversidan och JavaScript på klientsidan i webbläsaren.
Webbläsaren känner inte alls till din ASP-kod.
Du kan endast anropa dina ASP-sidor med HTTP GET/POST-anrop.
Det finns diverse sätt att göra detta på, förslagsvis Ajax med oändligt antal exempel.

Medlem sedan juli 20003 825 inlägg
#4

Du har en poäng!

Det var ju du som skrev om document.referrer i den andra tråden! Jag är verkligen jättekass på javascript, men rätt bra på asp... så jag tänkte, om jag håller mig till asp så långt som möjligt.

Hur kan jag få in document.referrer i en databas!? Förslag?

Medlem sedan dec. 20025 483 inlägg
#5

Använd Request.ServerVariables("HTTP_REFERER").

Medlem sedan juni 20014 421 inlägg
#6

Troxy skrev:

Hm, nu måste vi hålla isär saker och ting. :)
ASP körs på serversidan och JavaScript på klientsidan i webbläsaren.
Webbläsaren känner inte alls till din ASP-kod.
Du kan endast anropa dina ASP-sidor med HTTP GET/POST-anrop.
Det finns diverse sätt att göra detta på, förslagsvis Ajax med oändligt antal exempel.

Det var ju det jag sa. :q
Sen går det ju att skapa dummyelement med en src till ASP-filen i fråga. Visserligen ett GET-anrop. ;)
Fast är du helt säker på att du inte kan HEAD:a en ASP-sida?

Medlem sedan mars 20041 505 inlägg
#7

Eclipse skrev:

Hur kan jag få in document.referrer i en databas!? Förslag?

Här är en fullösning som kanske funkar:

var x = new Image();
x.src = 'http://www.example.com/save.asp?referrer=' + encodeURIComponent((document.referrer) ? document.referrer : '');

colione skrev:

Det var ju det jag sa. :q

Ja, delvis. Men jag sa lite mer :P

Medlem sedan juli 20003 825 inlägg
#8

Denna koden har jag klurat ut på egen hand och det fungerar inte.

function tracker{page) {
var x = new Image();
x.src = 'http://www.server.se/imgpwd/session.asp?referrer=' + encodeURIComponent((document.referrer) ? document.referrer : '');
}

Jag ropar på denna, som Google ropar på Analytics:

<script src="http://www.server.se/imgpwd/session.js" type="text/javascript">
</script>
<script type="text/javascript">
tracker();
</script>

Det är svårt för mig att se vad som inte stämmer.

Medlem sedan nov. 20014 054 inlägg
#9

Vad är det du egentligen vill uppnå med Javascriptet / ASP?

Medlem sedan sep. 2006867 inlägg
#10

Eclipse skrev:

Denna koden har jag klurat ut på egen hand och det fungerar inte.

function tracker{page) {
var x = new Image();
x.src = 'http://www.server.se/imgpwd/session.asp?referrer=' + encodeURIComponent((document.referrer) ? document.referrer : '');
}

Det är svårt för mig att se vad som inte stämmer.

Jag undrar samma sak som FreddeMannen, men i alla fall så är det en typo, ändra { till en ( direkt efter tracker och för alldel ta bort variablen page om du ändå inte tänker använda den:

function tracker() {
var x = new Image();
x.src = 'http://www.server.se/imgpwd/session.asp?referrer=' + encodeURIComponent((document.referrer) ? document.referrer : '');
}
Medlem sedan juli 20003 825 inlägg
#11

Tack för exempel!

Jag vill göra en sån sak som fungerar liknande som Google Analytics. Dvs, att man inkluderar en liten kodsnutt på alla sidor.

Jag har gjort lite experiment... men ännu inte riktigt fått till det. Jag vill gärna exekvera asp-sidan med hjälp av javascript, om det nu går!

Det är ingen bild utan ren text.

Medlem sedan juni 200032 969 inlägg
#12

Nu vet jag inte hur din kod ser ut exakt i detta nu, men tidigare hade du gjort detta misstag:

function tracker[b][blue]{[/blue][/b]page) {

Dvs - krull där det inte ska vara krull.

mvh

Medlem sedan nov. 20014 054 inlägg
#13

Eclipse skrev:

Tack för exempel!

Jag vill göra en sån sak som fungerar liknande som Google Analytics. Dvs, att man inkluderar en liten kodsnutt på alla sidor.

Jag har gjort lite experiment... men ännu inte riktigt fått till det. Jag vill gärna exekvera asp-sidan med hjälp av javascript, om det nu går!

Det är ingen bild utan ren text.

Ett tankesätt kan ju vara att man:

<script type="text/javascript" src="filen.js"></script>
<script type="text/javascript">
tracker();
</script>

filen.js

function tracker() {
 if (document.referrer) ref=escape(document.referrer)
 var screen = [];
 var screen[0] = aFunctionForScreenWidth();
 var screen[1] = aFunctionForScreenHeight();
 // osv... 

 // kanske man sedan kan spara ned det med någon get/post funktion (ajaxstil)
 saveEntry(ref, screen);
}

Det är bara en tanke .. så en Js-fil som samlar in all info du vill åt, sedan kallar den på en funktion som anropar en asp, php, or what ever sida via ajax-typ-anrop.

Men vad som är "Best Practise", det vette tusan.

Medlem sedan nov. 20014 054 inlägg
#14

Så saveEntry skulle kunna bli som följande:

function saveEntry(var1, var2)
var http = false;

if(navigator.appName == "Microsoft Internet Explorer") {
  http = new ActiveXObject("Microsoft.XMLHTTP");
} else {
  http = new XMLHttpRequest();
}

var q = "?var1="+var1+"&var2a="+var2[0]+"&var2b="+var2[1]+"";
var ok = "";
http.open("GET", "page.asp" + q);
http.onreadystatechange=function() {
  if(http.readyState == 4) {
    ok = http.responseText;
  }
}

http.send(null);

return ok; 
}

Kanske! :OO

Medlem sedan juni 20014 421 inlägg
#15

escape() != bra för urler.
encodeURIComponent() == bra för urler.

Medlem sedan juli 20003 825 inlägg
#16

Tack, tack! Nu ser min kod ut så här:

<script src="http://www.server.se/imgpwd/session.js" type="text/javascript">
</script>
<script type="text/javascript">
tracker();
</script>
function tracker() {
http.open("GET", "http://www.server.se/imgpwd/session.asp?referrer=" + encodeURIComponent((document.referrer) ? document.referrer : '') );
}

*****
OK, detta fungerar givetvis inte, det är därför jag postar.

Om det är möjligt att skippa all hantering av data i JavaScript skulle jag vara
glad, om inte annat för jag tycker det är svårt... Jag är duktigare på asp än på
javascript! :-)

Medlem sedan juni 20008 205 inlägg
#17

Pop quiz: Vad är http för något? Du har glömt att kopiera merparten av Freddes kod (som iofs är trasig). Sen är det också värt att komma ihåg att script bara får göra XmlHttp-anrop mot samma server som sidan de ligger på kom ifrån.

Eller förresten... bara använd Image-hacket istället.

Medlem sedan juli 20003 825 inlägg
#18

Tack! Som sagt, jag är ingen klippa på JavaScript...

Även när man ropar på en sida på samma server tror jag inte det fungerar att ropa på sidan.

Min kod nu skriver bara en post i databasen, koden är i skrivande stund inte relaterad till den information som eventuellt skickas.

Jag är alltså inte så duktig på JavaScript...

Medlem sedan juli 20003 825 inlägg
#19

http://www.google-analytics.com/urchin.js

Jag har studerat denna filen utan att direkt lyckats förstå NÄR saker hamnar i databasen!

På slutet finns ett anrop, tredje funktionen bakifrån. Kan det vara nåt att satsa på!?

Medlem sedan nov. 20014 054 inlägg
#20

Hmm..

Den här tanken då:


// typ.. 
var img = new Image(); 
img.src = "http://www.domain.se/a-image-file.asp?var=something&var1=something&var3=something";

// mer kod.. som jag inte kommer på nu..

Alltså man gör en preload av bilderna så att säga, men man visar dem aldrig för
användaren... kan det funka???

// red.. det funkar..

prövade nyss med en denna kod:

<script type="text/javascript">
window.onload = function() {
	var img = new Image();
	img.src = "http://localhost/test.asp?test=tihi";

}
</script>
143 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
140 ms — hämta tråd, inlägg och bilagor (db)