WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   AJAX - var börjar jag nysta? (https://www.wn.se/forum/showthread.php?t=18319)

eg0master 2007-01-03 17:05

Ok, jag har ju inte kikat på vad det är och jag förstod inte att det var tjänster där du inkluderade andras tjänster på din sida det handlade om.

Ja, jag vet ju fortfarande inte vilka objekt de använder för att prata med servern, men jag har själv använt "XMLHttpRequest()" i FireFox och får då ett exception om jag inte går mot samma host som sidan ligger på.

Jag säger inte att det inte funkar, bara att det kanske inte funkar för alla klienter.

Blackex 2007-01-03 17:09

Om en sida på domän A inkluderar ett javascript från domän B. Kan då javascriptet använda XMLHttpRequest och hämta data från en sida på domän B? I så fall kan det vara så de har löst det.

Blackex 2007-01-07 09:49

Det verkar vara flera annonssystem som hämtar in data från externa servrar. Exempelvis adsense. Där inkluderar man bara ett javascript och annonserna hämtas in från googles servrar. Hur fungerar det? Jag har har också sätt att det finns ett annonssystem som gör vissa nyckelord klickbara. När man för musen över ett sådant ord hämtas data in om annonsören och visas för besökaren.

Jag har en känsla av att det är möjligt att hämta in data från en extern server. Frågan är bara hur man gör? :-)

Weaver 2007-01-08 08:02

Du kan hämta data med Ajax från externa servarar, kallas för en cross-domain request. Dock så kan du inte använda XMLHTTPRequest för detta utan måste göra anropet via te.x. en IFRAME istället.

Skapa IFRAMEN med javascript sätt dess onLoad handler till att peka mot en lämplig javascript funktion och sätt sedan src värdet för att hämta sidan. När sidan är färdigladdad så anropas funktionen du satte i onLoad.

Finns säkert bibliotek som kommer med denna funktionaliteten färdig. Om du vill börja förstå koncepten i Ajax så kan du titta på sajax (http://www.modernmethod.com/sajax/). Rätt så tajt skrivet bibliotek.

dotvoid 2007-01-08 09:43

Citat:

Ursprungligen postat av Charlie
50kb för ett framework som ger en lite syntetiskt godis vid kodning


Lite för onyanserat påstående för att jag ska hålla med. Många av ramverken, inkl Prototype, må vara ganska feta kodmässigt men sitter du och skapar mer avancerade applikationer vinner du massor på att använda ett ramverk. Både i snabbare och mer kvalitativ utveckling samt enklare underhåll. Strippar och komprimerar du sedan js-libbarna korrekt så är det inte alls någon overhead att tala om. Gör man ett enstaka anrop eller någon enstaka effekt på en webbsida kan jag hålla med om att de är lite tunga. Då finns det andra alternativ. Det finns dock många som jobbar med webbsiter och projekt där dessa ramverk fyller sin syfte.

Citat:

Ursprungligen postat av Charlie
Edit2: Har hört talas om att det ska finnas liknande för PHP, men har aldrig testat något.

Jag gjorde lite tester och skapade ett sådant ramverk för PHP för snart ett år sedan som finns beskrivet på http://www.dotvoid.com/view.php?id=35 och http://dotvoid.com/garage/toxicexamples/ men. Det var bara tester och det finns en uppdaterad version som fungerar betydligt bättre med mindre manuellt kodande men tyvärr är det inte publikt. Det tillåter i alla fall att man instansierar PHP-klasser som javascript-objekt. Anrop mot metoder i javascript-objekten omvandlas i bakgrunden till riktiga anrop på motsvarande instansierade PHP-objekt.

Fram till dess att javascript får pålitligt stöd för continuations blir det dock aldrig riktigt intressant. Det är trist med alla callbacks. (Jag vet att det finns mer eller mindre meckiga workarounds for continuations.)

Blackex 2007-01-08 12:40

Weaver: Funkar IFrames i alla browsers? Vet du om det går att positionera en IFrame vart som helst på en sida, dvs som ett vanligt lager?

dotvoid: vad finns det för verktyg för att strippa och komprimera ett javascript? helst ett som döper om funktioner och variabler så att de blir så korta som möjligt.

Weaver 2007-01-08 12:49

Citat:

Originally posted by Blackex@Jan 8 2007, 13:40
Weaver: Funkar IFrames i alla browsers? Vet du om det går att positionera en IFrame vart som helst på en sida, dvs som ett vanligt lager?
IFrames fungerar i alla moderna webbläsare.

Du ska inte positionera den. Sätt den som hidden istället.
#iFrame {
visibility: hidden;
height: 1px;
}

Blackex 2007-01-08 13:01

Hidden? Varför? Är det för att jag skall slippa skapa en ny hela tiden, dvs så att jag kan återanvända den?

Min tanke är alltså att dynamiskt hämta innehåll från en extern sida. När man för musen över en viss länk så skall innehållet dyka upp i en liten ruta precis bredvid länken. Innehållet skall bero på innehållet i url:en.

Så här verkar man kunna lösa det:

Dels behöver jag ett javascript som kollar av vilka länkar på sidan som skall trigga "popup-lagret". Koden för det är i princip klart.

Sedan har jag tänkt att jag då (vid triggern) dynamiskt (med javascript) skapar en iframe med en src-url till den externa servern, med orginal url:en som argument. Iframen positionerar jag så att den dyker upp precis vid länken.

På server sidan tas url:en emot och baserat på url retuneras rätt innehåll.

På detta sätt verkar jag inte ens behöva ajax... Men jag är inte helt säker på att min lösning fungerar i alla browsers etc.

Blackex 2007-01-08 13:39

För att förtydliga. Det är alltså någonting liknande som detta jag är ute efter.

Weaver 2007-01-08 13:47

Aaah, trodde bara du skulle använda IFramen för att kommunicera. Därför sa jag att du skulle sätta den som hidden för att den skulle vara osynlig för användaren.

Trodde nämligen att du skulle göra popupen med en absolut-placerad div


Alla tider är GMT +2. Klockan är nu 12:29.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson