2010-12-20 13 views
2

Ich versuche, SVG-Elemente mit JavaScript-Bibliotheken hinzuzufügen und zu erstellen, und ich bin auf ein gemeinsames Thema gestoßen, das ich gerne beheben würde.SVG dynamisches Rendering in Chrome

Zum Beispiel mache ich eine AJAX-Anfrage und erzeuge einen Punkt auf einer Karte basierend auf den zurückgegebenen Werten von Längen- und Breitengrad (mit Polymaps, obwohl dies auch mit Protovis passiert ist). Wenn ich es einmal ausführe, funktioniert es gut. Als Beispiel ist es das, was vom Server

[{'lat':29.6196787,'lng':-95.6349463},{'lat':42.3584308,'lng':-71.0597732}] 

zurückgegeben wird ich diese dann einer Variablen zuweisen und lassen Sie die Bibliothek, die die Rendering behandeln.

Wenn ich eine interaktive Funktion einfüge, wo ich mehr Anfragen mache und mehr Punkte hinzufüge, wird in Chrome nichts angezeigt, wenn ich die Größe des Fensters ändere oder auf die Seite klicke (es ist so, als wären die Punkte vorhanden, aber es muss aktualisiert werden) Firefox scheint alles zu funktionieren.

Ich denke, dies kann mit globalen vs. lokalen Variable Scoping zu tun haben, aber ich kann nicht verstehen, warum. Jemand hat einmal erwähnt, dass er anonyme selbstaufrufende Funktionen verwendet, aber ich bin im Allgemeinen verwirrt. Kann ich Hilfe bekommen?

Prost!

+0

Können Sie eine abgespeckte Beispiel für Ihr Problem überall online, damit wir Ihre Ergebnisse reproduzieren können? – Phrogz

+0

SVG ist skalierbar, Chrome und Firefox rendern weniger als Pixelgrößenelemente unterschiedlich und manchmal bewirkt die Skalierung, dass Punkte nicht angezeigt werden oder im Falle von Kartenrändern nicht angezeigt werden. http://stackoverflow.com/questions/3998254/svg-image-zoom-and-borders/4012063#4012063 Ihr Code wird nicht angezeigt, also muss ich fragen, was Sie eine Dump-Frage betrachten können; Wenn du einen sehr großen Rect mit deinem Code platzierst, wird er angezeigt? – Wayne

+0

Ja, tut es. Alles wird zunächst richtig gerendert. Wenn ich versuche, den Vorgang zu wiederholen, wird er in Chrome nicht korrekt ausgeführt, funktioniert aber in Firefox. – Rio

Antwort

1

Überprüfen Sie dies, vielleicht wird es helfen, es gibt eine Reload-Funktion auf dem Layer-Objekt.

http://polymaps.org/docs/layer.html#reload

+0

Dies lädt die Kacheln, aber nicht unbedingt die Punkte. Ich denke, dieses Problem hängt nicht unbedingt mit der Tatsache zusammen, dass ich Polymaps verwende. Trotzdem danke! – Rio

Verwandte Themen