IE Fehler -2147024882

8

Ich entwickle eine Webseite mit vb.net auf der Serverseite und etwas Javascript auf der .aspx Seite für google maps. Die Webseite ist eine große GIS-Sache, die alle Blockgruppen von Georgia innerhalb bestimmter Kreise abbildet, also sind es etwa 15 MB reine [Breiten- und Längengrad] Punkte in einer .js-Datei. In chrome / firefox wird die Karte geladen, dann wird das Skript geladen, das einen Callback auslöst, um die definierten Polygone zu zeichnen, und die Polygone werden auf die Karte gezeichnet. Im IE wird die Karte geladen, und wenn das Skript geladen wird, hat die Konsole SCRIPT14: error -2147024882 in Zeile 1. Alles wird neben den Polygonen auf der Karte korrekt angezeigt. Die Struktur der .js-Datei ist eine Deklaration von nur ein paar Variablen.

%Vor%

^^ ist, wie jedes Polygon in den .js definiert ist. Ist dies ein Größenproblem, weil sich alle Punkte in einem einzelnen Array befinden?

Mapping-Code:

%Vor%

In Chrome lädt die Seite wunderbar.

bearbeiten: die neue Mapping-Funktion ohne eval () 's

%Vor%     
Jay Elrod 06.08.2012, 17:49
quelle

2 Antworten

13

Ich glaube, ich habe die genaue Ursache für diesen Fehler gefunden.

BEARBEITEN: Ich glaube, dass dieser Fehler ab IE 10 behoben wurde

Meine Tests deuten darauf hin, dass der IE es ablehnen wird, eine Javascript-Datei mit mehr als 2 16 -3-Zahlen auszuführen. Wenn also eine .js-Datei 65533 Zahlen hat, wird IE sie ausführen. Aber wenn es 65534 oder mehr Zahlen enthält, erhalten Sie den Fehler −2147024882 .

Ich habe hier einen Testfall vorgelegt, der dieses Problem demonstriert:

Ссылка

Die Site, an der ich gerade arbeite, lädt große Mengen von JSON-Daten aus Javascript-Dateien, die auf S3 gehostet werden. Zuerst dachte ich, dies sei auf eine Größenbeschränkung der Javascript-Quelldatei im IE zurückzuführen. Aber ein paar Tests haben gezeigt, dass der IE mit .js-Dateien umgehen kann, die viel, viel größer waren als die, die diesen mysteriösen −2147024882 -Fehler ausgelöst haben.

Die Problemumgehung bestand in meinem Fall darin, beim Generieren der JS-Dateien Ints und Floats als Strings zu codieren und sie mit Hilfe von parseInt und parseFloat zu interpretieren.

    
can_i_help 10.08.2012 21:32
quelle
2

Was mein Googeln angeht, so scheint dies ein "nicht mehr verfügbarer Speicher" zu sein:

"Fehler -2147024882 Zum Ausführen des Vorgangs ist nicht genügend Arbeitsspeicher verfügbar. - MAPI_E_NOT_ENOUGH_MEMORY (Microsoft Exchange Server-Informationsspeicher)

Überprüfen Sie die Längen Ihrer Schleifen (multiPolys und allTracts)

Und überprüfe auch die Länge deines String-Trakts und subTract, sie könnten zu lang sein

    
Sindre 06.08.2012 18:46
quelle