Toon posts:

[JS/PHP/HTML] IE Traag, geeft melding. kan dat uit?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Okay, ik heb een PHP pagina, die dynamisch vanuit een database een zwik javascript vars en document.write (s) geeft.
Echter is het aantal momenteel zo hoog (500) (en dat wordt nog hoger) dat IE een melding geeft:

Vanwege een script op deze pagina reageert Internet Exporer traag. Als u doorgaat, reageert uw computer misschien niet meer. Wilt u het script afbreken?

NEE! :p

Is er een manier om te voorkomen dat deze melding wordt weergegeven??
Misschien d.m.v. een java time-out ofzo?
Bij PhP kan het, maar dit is een JS melding, dus stiekem ben ik bang dat de locale PC die melding geeft, en dat ik (vanuit de server / broncode) dat dus niet kan beinvloeden . .

  • coubertin119
  • Registratie: Augustus 2002
  • Laatst online: 25-05 19:01
Dat is inderdaad niet mogelijk. Maar waarom in godesnaam zo'n enorm aantal document.write's? Kan zoiets niet rechtstreeks in HTML, of anders met het hiden/unhiden van informatie in je elementen als je zoiets zoekt?

Skat! Skat! Skat!


Verwijderd

Kun je eens wat code posten en een idee van wat je wilt bereiken? Misschien dat we iets kunnen verzinnen om het proces aan te passen zodat die waarschuwing niet verschijnt.

  • Michali
  • Registratie: Juli 2002
  • Laatst online: 22-03 18:12
Inderdaad, waarom document.write statements printen als je toch al de inhoud met php genereerd. Lijkt me een beetje erg overbodig en omslachtig.

Noushka's Magnificent Dream | Unity


  • creative8500
  • Registratie: September 2001
  • Laatst online: 03-01 16:54

creative8500

freedom.

Geen document.writes, gewoon (X)HTML uitspugen, véél beter. :)

Verwijderd

Topicstarter
De document.writes bouwen de tabel op, ik had het zo bedacht, zodat ik maar 1 keer de database hoef door te sprinten, en ik de volgorde 100% zeker goed heb.

stukkie code: (sorry voor layout screwup)
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
  $sql = "SELECT * FROM klanten ORDER BY Bedrijf";
  $result = mysql_query($sql);
  echo "<SCRIPT LANGUAGE=\"javascript\">";
  echo "Style[0]=[\"white\",\"black\",\"#000099\",\"#E8E8FF\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"sticky\",\"\",\"\",400,\"\",2,2,10,10,\"\",\"\",\"\",\"\"]
  for ($i = 1; $data = mysql_fetch_row($result); ++$i) {
    echo "\n  document.write('<TR>');";
    echo "\n  Text[" . $i . "]=[\"" . $data[1] . "\"," .
         "\"<TABLE CLASS='info'>" .
         "<TR><TD CLASS='info'>Contactpersoon</TD><TD STYLE='border: 1 solid black;'>" . $data[2] . "</TD></TR>" .
         "<TR><TD STYLE='border: 1 solid black;'>Adres</TD>         <TD STYLE='border: 1 solid black;'>" . $data[3] . "</TD></TR>" .
         "<TR><TD STYLE='border: 1 solid black;'>PC / Plaats</TD>   <TD STYLE='border: 1 solid black;'>" . $data[4] . " - " . $data[5] . "</TD></TR>" .
         "<TR><TD STYLE='border: 1 solid black;'>Land</TD>          <TD STYLE='border: 1 solid black;'>" . $data[6] . "</TD></TR>" .
         "<TR><TD STYLE='border: 1 solid black;'>Telefoon</TD>      <TD STYLE='border: 1 solid black;'>" . $data[7] . "</TD></TR>" .
         "</TABLE>\"]";

    echo "\n    document.write(\"<TD><A HREF='javascript:nix();' onMouseDown='stm(Text[" . $i . "],Style[0])' onMouseOut='htm()'>?</A></TD>\");";
    for ($j = 1; $j <= $tot; ++$j) {
      $tmp = $lijst['ColNr'][$j];
      echo "\n  document.write(\"  <TD STYLE='border: 1 solid black;'><DIV STYLE='overflow: hidden; width = " . $lijst['Width'][$j] . ";'" .
           ">" . $data[$tmp] . "</DIV></TD>\");";
    }
    echo "\n  document.write('</TR>')";
  }
  echo "\n</SCRIPT>";
  echo "\n</TABLE>";


(sommige \n wordt niet goed gepakt, script werkt perfect op deze manier)
enige nadeel is dus die friggen melding :)
totale parsetijd is overigens momenteel 7.5 sec :p

Maar zou het opsplitsen van de vars ( Text[X] ) en de document.write (veranderen in PHP echo) al de oplossing zijn??

De vars worden door het script gedeclareerd om een tooltip met alle info betreffende de klanten te vullen

Verwijderd

Ik kom er niet helemaal uit, post eens de output van de PHP (of een representatief deel daarvan).

  • koli-man
  • Registratie: Januari 2003
  • Laatst online: 13-05 14:28

koli-man

Bartender!!!!

Als in die database erg veel gegevens zitten dan wordt inderdaad erg vaak door die loop gegaan.
Misschien kun je een efficientere db maken. Als het kan, dat weten wij natuurlijk hier niet.

[ Voor 5% gewijzigd door koli-man op 20-01-2004 17:47 ]

Hey Isaac...let's go shuffleboard on the Lido - deck...my site koli-man => MOEHA on X-Box laaaiiiff


  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02-2025

SchizoDuckie

Kwaak

Errr... hoe bedoel je omslachtig :?

Je sql query doet het sorten al, dus je kan een tabel gewoon zo opbouwen:

HTML:
1
2
3
4
5
6
7
8
<head>
<style type="text/css">
TD
{
border: 1px solid black;
}
</style>
</head>

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
  $sql = "SELECT * FROM klanten ORDER BY Bedrijf";
  $result = mysql_query($sql);
echo ("<table>");  
while ($array = mysql_fetch_array($result))
{
echo ("<tr>\n");
for ($i=0; $i<4; $i++)
{
echo("<td>".$array[$i]."</td>\n\t");
}
echo("</tr>\n");
}
echo("</table>");


Dat werkt toch ook :?

[ Voor 55% gewijzigd door SchizoDuckie op 20-01-2004 17:53 ]

Stop uploading passwords to Github!


  • creative8500
  • Registratie: September 2001
  • Laatst online: 03-01 16:54

creative8500

freedom.

Zilverdael: het is zéér aan te raden om Papa Eend's methode te gebruiken. :)
Pagina: 1