[javascript] maximale grote array/script

Pagina: 1
Acties:

  • GoVegan
  • Registratie: Juni 2002
  • Laatst online: 16-08 22:25
kheb hier beetje groot javascript waar bij ik deze foutmelding krijg in mijn browser

Afbeeldingslocatie: http://uwagatrip.port5.com/visuals/error.gif

het betrefd het een array waarin 112 arrays zitten die een grote van 99 delen hebben. totaal dus 11088 delen met gemiddelde grote van 5 charakters.

deze code laat ik door twee for lussen lopen

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<script>

var b = '<font size=1 color="#';
var e = '">@</font>';
//klein voorbeeld van de groter array
var txt = new Array(new Array('a6c','a6c','178f'),new Array('a6c','a6c','178f'),new Array('a6c','a6c','178f'));


for(i=0;i<txt.length;i++){
for(t=0;t<3;t++){
document.write(b+txt[i][t]+e);
}
document.write("<BR>");
} 
</script>


en daar krijg ik dus die fout melding bij.
Maar waar ligt het aan, ik denk zelf aan die grote array.
kan ik deze foutmelding onderdrukken of op een andere manier oplossen.

  • whoami
  • Registratie: December 2000
  • Laatst online: 17:38
Javascript hoort niet thuis in P&W, zie de forumdescriptions.

P&W -> W&G

https://fgheysels.github.io/


  • Clay
  • Registratie: Oktober 1999
  • Laatst online: 22-06 13:51

Clay

cookie erbij?

javascript is niet echt bedoeld om -heel veel- dingen in 1 for loop te doen. Je kan het opdelen in stapjes met een timeout tussen de stappen, maar dat is het denk ik zo'n beetje. Onderdrukken kan iig niet.

Instagram | Flickr | "Let my music become battle cries" - Frédéric Chopin


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 20:27

crisp

Devver

Pixelated

Ik zie het nut hier ook niet zo van in, wat wil je eigenlijk bereiken?

Intentionally left blank


  • GoVegan
  • Registratie: Juni 2002
  • Laatst online: 16-08 22:25
crisp schreef op 04 november 2003 @ 22:56:
Ik zie het nut hier ook niet zo van in, wat wil je eigenlijk bereiken?
kben bezig, plaatjes met php om te zetten in ascii code, soort van ascii art dus.
alleen worden de plaatjes uiteindelijk in ascii art groter dat het plaatje zelf,
en omdat er veel herhaalende data in zit zoals:
<font size=1 color=" ">@</font>

alleen de kleur code veranderd steeds dus.
dacht ik van, gooi alle kleurcodes met php in een javascript array en laat client site met javascript de rest van de data er bij zetten. leek mij opzich nog wel simpele oplossing. maarja javascript werkt niet echt mee. ben het nu aan het opdelen in stukken, maar wil nog niet echt baten.

[ Voor 3% gewijzigd door GoVegan op 05-11-2003 00:09 . Reden: type foutje ]


  • Wolfboy
  • Registratie: Januari 2001
  • Niet online

Wolfboy

ubi dubium ibi libertas

de waarschuwing van internet explorer zegt alleen maar dat het een beetje lang gaat duren, niets mis mee dus
gewoon op nee drukken en hij gaat verder :)

Blog [Stackoverflow] [LinkedIn]


  • We Are Borg
  • Registratie: April 2000
  • Laatst online: 21:41

We Are Borg

Moderator Wonen & Mobiliteit / General Chat
Wolfboy schreef op 05 november 2003 @ 00:14:
de waarschuwing van internet explorer zegt alleen maar dat het een beetje lang gaat duren, niets mis mee dus
gewoon op nee drukken en hij gaat verder :)
Jij zegt dat er niks mis mee is, maar pietje die niet zoveel verstand heeft van website's ziet een enge error ;)

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 20:27

crisp

Devver

Pixelated

tsja, misschien als je wat optimalisaties toepast, zodat je niet per 2 karakters een font-tag (hoezo deprecated) nodig hebt...

Intentionally left blank


  • Clay
  • Registratie: Oktober 1999
  • Laatst online: 22-06 13:51

Clay

cookie erbij?

Als je toch al met php bezig bent, waarom laat je de php niet ok de hele html uitpoepen? Waarschijnlijk is dat nog makkelijker ook, dan is die hele script stap en array meuk ertussenuit.

Instagram | Flickr | "Let my music become battle cries" - Frédéric Chopin


  • GoVegan
  • Registratie: Juni 2002
  • Laatst online: 16-08 22:25
Clay schreef op 05 november 2003 @ 09:02:
Als je toch al met php bezig bent, waarom laat je de php niet ok de hele html uitpoepen? Waarschijnlijk is dat nog makkelijker ook, dan is die hele script stap en array meuk ertussenuit.
Had ik ook, en ja het is ook makkelijker maar dan word mijn hele pagina toch wat te groot. en ik dacht omdat er heel vaak dezelfde text delen in voorkomen dat ik deze er clientside er pas aan ga zetten.


ik heb het nu net met een string.replace() geprobeerd. maar heb nu al 5 minuten een cpu load van 100% :| dus dat gaat ook niet echt lukken.

zo ver ik weet heb heb je toch alleen maar javascript die zo iets clientside kan doen?

  • dominic
  • Registratie: Juli 2000
  • Laatst online: 19:07

dominic

will code for food

Ben het met Clay eens..

Maar wat hier zowieso misgaat is dat je een een array met lengte 3 hebt Array(a, b, c) en a b en c zijn op zich weer arrays maar dat maakt niet zoveel uit (al zijn hier veel simpelere oplossingen voor).

Op het moment dat jij de array uitleest gebruik je arrayvar[i][t], gaat niet werken volgens mij..

Volgens mij kun je wel het volgende doen (ook al lijkt het hetzelfde):

var arrayvar = txt[0]
var arrayvar2 = txt[1]
var arrayvar3 = txt[3]

arrayvar[0]
arrayvar[1]
arrayvar[2]
arrayvar2[0]
arrayvar2[1]
arrayvar2[2]

Etc..

Doe het ff uit m'n blote hoofdje dus kan het mis hebben hoor..

Maar zoals gezegd is het een erg vreemde manier om het op te lossen..

[ Voor 9% gewijzigd door dominic op 05-11-2003 09:18 ]

Download my music on SoundCloud


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 20:27

crisp

Devver

Pixelated

als je het aantal kleuren kan beperken tot bijvoorbeeld 16 dan heb ik nog wel wat voor je ;)

Intentionally left blank


Verwijderd

Als je boel eerst in een string stopt, en dan de hele zooi in een keer document.write?

  • GoVegan
  • Registratie: Juni 2002
  • Laatst online: 16-08 22:25
Verwijderd schreef op 05 november 2003 @ 09:32:
Als je boel eerst in een string stopt, en dan de hele zooi in een keer document.write?
dan kan ik net zo goed direct in php een echo geven toch...

  • GoVegan
  • Registratie: Juni 2002
  • Laatst online: 16-08 22:25
crisp schreef op 05 november 2003 @ 09:18:
als je het aantal kleuren kan beperken tot bijvoorbeeld 16 dan heb ik nog wel wat voor je ;)
ah laat maar zien. ben wel benieuwd wat je hebt. eens kijken of ik het kan toepassen.

trouwens 16 kleuren, het plaatje of de output?

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 20:27

crisp

Devver

Pixelated

GoVegan schreef op 05 november 2003 @ 09:45:
[...]


ah laat maar zien. ben wel benieuwd wat je hebt. eens kijken of ik het kan toepassen.

trouwens 16 kleuren, het plaatje of de output?
16 kleuren in het plaatje. Ik heb een php scriptje wat dat kan comprimeren, en een javascriptje met een reguliere expressie wat dat kan decomprimeren - is redelijk snel.
Als je vervolgens alles in een array propt, en die voordat je het output implodeert zou het toch redelijk vlot moeten gaan :)

Intentionally left blank


  • GoVegan
  • Registratie: Juni 2002
  • Laatst online: 16-08 22:25
crisp schreef op 05 november 2003 @ 09:56:
[...]

16 kleuren in het plaatje. Ik heb een php scriptje wat dat kan comprimeren, en een javascriptje met een reguliere expressie wat dat kan decomprimeren - is redelijk snel.
Als je vervolgens alles in een array propt, en die voordat je het output implodeert zou het toch redelijk vlot moeten gaan :)
als je me dat zou kunnen mail (mailadres staat in mijn profiel) of hier zou kunnen posten, dan zou ik heel blij zijn. :)

en we leren er gelijk weer wat nieuwe dingen bij...

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 20:27

crisp

Devver

Pixelated

mzzz, moet ik vanavond even thuis kijken, heb hier geen sources bij de hand helaas...

Intentionally left blank


  • GoVegan
  • Registratie: Juni 2002
  • Laatst online: 16-08 22:25
crisp schreef op 05 november 2003 @ 10:28:
mzzz, moet ik vanavond even thuis kijken, heb hier geen sources bij de hand helaas...
ke dan. alsvastbedankt...

  • GoVegan
  • Registratie: Juni 2002
  • Laatst online: 16-08 22:25
en wacht nog steeds.....

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 20:27

crisp

Devver

Pixelated

ik ben bezig :)

edit: opzetje

HTML:
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
<html>
<head>
<title>picture</title>
<script type="text/javascript">

function init() {

  var compressed = 'abababababb10,b10c10,c10a5b5,e20,e20,f20,f20,g20,g20';

  var uncompressed = decompress(compressed);
  document.getElementById('picture').innerHTML = uncompressed;
  document.getElementById('check').value = uncompressed;


}

function decompress(compressed,width) {

  var colors = [];
  colors['a'] = '#000000';
  colors['b'] = '#00ff00';
  colors['c'] = '#ffff00';
  colors['d'] = '#00ffff';
  colors['e'] = '#ff00ff';
  colors['f'] = '#0000ff';
  colors['g'] = '#ff0000';
  colors['h'] = '#c0c000';
  colors['i'] = '#00c0c0';
  colors['j'] = '#c000c0';

  var uncompressed = [];
  var i = 0;
  var p,n,o;

  var re = /([a-zA-Z]+)(\d*)(,?)/g

  var matched = re.exec(compressed);

  while (matched != null) {

    n = matched[1].length;

    o = 0;
    do {

      if (o) uncompressed[i++] = '</span>';
      p = colors[matched[1].charAt(o)];
      uncompressed[i++] = '<span style="color:'+p+'">@';

    } while (++o < n);

    if (matched[2]) {

      n = parseInt(matched[2], 10);
      while (--n) uncompressed[i++] = '@';

    }

    uncompressed[i++] = '</span>';

    if (matched[3]) uncompressed[i++] = '<br />';

    matched = re.exec(compressed);

  }


  return uncompressed.join('');

}

</script>
<style type="text/css">

#picture {
  white-space: nowrap;
}

#check {
  width: 400px;
  height: 200px;
}

span {
  font-size: 2px;
  line-height: 1px;
}

</style>
</head>
<body onload="init()">
<div id="picture"> </div>
<textarea id="check"></textarea>
</body>
</html>


De 'compressie' is erg basic, a-z en A-Z staan voor een kleur (ik heb het maar even beperkt tot 10 in dit voorbeeld) en een cijfer voor hoeveel pixels die kleur herhaald moet worden. Een komma betekent nieuwe regel.

[ Voor 108% gewijzigd door crisp op 06-11-2003 11:56 ]

Intentionally left blank


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 20:27

crisp

Devver

Pixelated

mmz, misschien even een kick aangezien mijn edit hierboven blijkbaar niet opvalt.
Ik vermoed dat deze opzet best wel rap is; met een meer geavanceerde compressie (die ik gebruik in DHTML lemmings) haal ik hier zeer goede resultaten mee (enkele tienden van seconden op arrays van 160x1600)

Intentionally left blank


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 19-08 22:14

Bosmonster

*zucht*

Verwijderd schreef op 05 november 2003 @ 09:32:
Als je boel eerst in een string stopt, en dan de hele zooi in een keer document.write?
Jammer dat iedereen deze opmerking negeert.. want zovel in javascript als php wordt dit vaak 'fout' gedaan.

Ipv in de loop een string generereren die je write, gaan we writen voor iedere loop-iteratie, wat uiteraard veel en veel intensiever is.
GoVegan schreef op 05 november 2003 @ 09:43:
[...]


dan kan ik net zo goed direct in php een echo geven toch...
Nee.. want je genereert het nog steeds in een loop dus, alleen stop je het eerst in een string die je daarna document.write.

---
NB: Stop het dan wel eerst in een array weer van strings en voeg die later samen met join() ;) Anders gaat IE alsnog over z'n nek :P

[ Voor 9% gewijzigd door Bosmonster op 07-11-2003 09:10 ]

Pagina: 1