WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   AJAX problem (https://www.wn.se/forum/showthread.php?t=17975)

Sirsiljas 2006-12-08 12:20

Hej

Jag har ett AJAX script som hämtar texten från en sida och visar den i en div lajvBody.
Scriptet fungerar mycket bra i FireFox, men jag får inte det att fungera alls i IE.

Jag har felsökt scriptet men pga att jag är nybörjare när det gäller AJAX så har jag inte lyckats lokalisera problemet. Vet ni vad problemet kan vara?

Kod:

<script language="javascript" type="text/javascript">
<!--
  function makeRequest(url) {
    var http_request = false;

    if (window.XMLHttpRequest) { // Mozilla, Safari, ...
      http_request = new XMLHttpRequest();
      if (http_request.overrideMimeType) {
        http_request.overrideMimeType('text/html');
        // See note below about this line
      }
    } else if (window.ActiveXObject) { // IE
      try {
        http_request = new ActiveXObject("Msxml2.XMLHTTP");
      } catch (e) {
        try {
          http_request = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (e) {}
      }
    }

    if (!http_request) {
      alert('Giving up :( Cannot create an XMLHTTP instance');
      return false;
    }
    http_request.onreadystatechange = function() { alertContents(http_request); };
    http_request.open('GET', url, true);
    http_request.send(null);

  }

  function alertContents(http_request) {

    if (http_request.readyState == 4) {
      if (http_request.status == 200) {
        document.getElementById('lajvBody').innerHTML = http_request.responseText;
      } else {
        document.getElementById('lajvBody').innerHTML = 'Ett fel uppstod';
      }
    }

  }
       
var interval = setInterval("makeRequest('sida.asp')",8000);
//-->
</script>


Sirsiljas 2006-12-08 18:38

Jag märkte att jag skriv i fel forum, ber om ursäkt för detta.

wmasterj 2006-12-16 14:44

Jag kan inte se några direkt fel här men du kan köra dit script genom www.jslint.com där kan du verifiera dina script för att söka efter fel.

Du kan ju också använda andras bibliotek för XMLHttpRequest - som YUI(Yahoo User INterface) eller GWT(Google Web Toolkit).
Tror YUI är det enklaste och går snabbast att lära sig. Dom erbjuder också mycket DOM-funktioner som gör det enklare att hantera vad som händer med dom AJAX svar man får.

doob 2006-12-19 10:56

Det fungerar bra för mig i IE6.

Edit: Tänk på att det tar 8 sekunder innan "sida.asp" laddas.

grazzy 2006-12-19 13:02

Sirsiljas, använd prototype istället, det är ett javascripts bibliotek som hjälper dig _MYCKET_ med din ajax-utveckling;
Kod:

var req = new Ajax.Request(
'sida.asp',
{
onComplete: function(transport) { alert('klart, datat finns i transport.responseText'); }
}
);

Du slipper bry dig om skillnaderna ie, firefox, opera etc.. bara en sån sak är värd tiden det tar att lära sig grunderna av prototype.

doob 2006-12-19 15:22

Fast i hans fall skulle det väll bli:

Kod:

var req = new Ajax.PeriodicalUpdater('lajvBody', 'sida.asp',{frequency:8});
Edit: sida.asp, inte sida.php.

grazzy 2006-12-19 15:44

Mmm.. jag tittade inte så noga på hans exempel :)

wmasterj 2006-12-19 19:53

Om man ska rekommendera toolkits/bibliotek så tror jag jQuery är ett bättre alternativ. (

Systementor: (om skillnaderna mellan jQuery och Prototype)
- Bättre dokumentation
- Lättare att lära sig
- Enklare syntax
- Mer troligt att växa i kvalitet och funktionalitet.
- "Prototype" användare som ofta bytt till just "jQuery"
- Plug-ins

Jag har nämligen gjort lite koll här och var och börjat testa en rad olika bibliotek och det jag kommit fram till hittills är att jQuery ser bäst ut.

Hoppas det löser sig Sirsiljas!


Alla tider är GMT +2. Klockan är nu 01:05.

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