Forum: Mikrocontroller und Digitale Elektronik Frage zu Java Script und Server/Client.


von Jürgen (Gast)


Lesenswert?

Hallo,

wenn auf einem Server eine HTML-Seite mit einem Java Script liegt, ist 
es dann möglich bzw. erlaubt, dass von dieser HTML-Seite ein lokales 
Java Script (Library auf dem Clientrechner) eingebunden wird? Geht das 
überhaupt oder wird dies als Cross Scripting Versuch gewertet, der vom 
Browser unterbunden wird?

mfg

Jürgen

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Probier es aus, im Prinzip spricht nichts dagegen aber welchen Vorteil 
soll das bringen? Lass den uC doch das JS gleich mit ausliefern

von webgast (Gast)


Lesenswert?

Zugriffe auf lokale Resourcen sind aus Sicherheitsgründen generell 
verboten. Ausnahme sind signierte Java-Applets. Flash kann, soweit ich 
weis, auch nur auf Daten zugreifen, die es selbst abgelegt hat 
(Flash-Cookies)

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Es geht nicht um den Zugriff sondern um das einbinden eines lokalen 
Skriptes. Das kann erlaubt sein (Browserabhängig/Einstellung) hat aber 
so garnichts mit Applets und Flash zu tun.

von webgast (Gast)


Lesenswert?

Um etwas einbinden zu können, braucht man Zugriff darauf.

von A. B. (funky)


Lesenswert?

Geht prinzipiell schon, auch wenn das von jedem aktuellen Browser 
standardmässig deaktiviert sein sollte.

Aber einen sinnigen Anwendungszweck sehe ich gerade nicht, ausser evtl. 
bischen Speicher für das JS zu sparen(bei einem 
Mikrocontrollerhintergrund).

Wofür soll das ganze nützlich sein?

von webgast (Gast)


Lesenswert?

Da muss man dann aber eine IE4 oder so benutzen. Bei halbwegs modernen 
Browsern geht sowas noch nicht mal optional.

Ein Server nur mit dem internem RAM eines µC macht wenig Sinn und eine 
SD-Card ist doch relativ problemlos anschließbar.

von webgast (Gast)


Lesenswert?

PS: ".. hat aber so garnichts mit Applets und Flash zu tun .."

Es gibt eine Schnittstelle zwischen einem Applet und der 
Javascript-Runtime. Mit einem signierten Applet könnte man durchaus ein 
lokale Datei laden, die Javascript enthält und diese dann ausführen. Und 
das bei "normalen" Einstellungen.

von Peter II (Gast)


Lesenswert?

die Frage ist aber ob die script wirklich lokal ligen soll, das ist doch 
viel zu unflexiebel. Lege es doch auf einen anderen Webserver, das geht 
auf jeden Fall. Dann kann auch jeder die Seite aufrufen.

Wenn du Lokal einen webserver hast, dann kann es auch lokal liegen.

von Jürgen (Gast)


Lesenswert?

Hallo,

Vielen Dank für die vielen Antworten.

Hintergrund ist ein AVR NETIO Server und eine 105 KByte große 
Javascript-Datei. Es dauert ca.45 Sekunden um die Datei zu laden. Mein 
Gedanke war diese Datei lokal einzubinden. Das funktioniert leider nicht 
ohne die Sicherheitseinstellungen herabzusetzen.

Da wäre noch ein Gedanke: ist es möglich die JavaScript-Datei zu packen 
und der Browser (FireFox) packt sie automatisch aus?

mfg

Jürgen

von webgast (Gast)


Lesenswert?

Du könntest dir doch diesen Zusatz holen:

http://www.pollin.de/shop/dt/Nzg4OTgxOTk-/Bausaetze_Module/Bausaetze/Bausatz_Add_on_fuer_AVR_NET_IO.html

Da ist ein SD-Slot mit drauf und dann hast du mehr als genug 
Speicherplatz.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Jürgen schrieb:
> Da wäre noch ein Gedanke: ist es möglich die JavaScript-Datei zu packen
> und der Browser (FireFox) packt sie automatisch aus?

Allerdings. Der Webserver muss nur die Daten in gzip-Kompression liefern 
(und im Header so kennzeichnen), dann funktioniert das automatisch.

http://www.websiteoptimization.com/speed/tweak/compress/

von Jürgen (Gast)


Lesenswert?

Hallo,

Rufus Τ. Firefly schrieb:
> Allerdings. Der Webserver muss nur die Daten in gzip-Kompression liefern
> (und im Header so kennzeichnen), dann funktioniert das automatisch.

Das ist es! Bin beim Suchem auch darauf gestoßen und habe es bereits 
implementiert. Das Java Script ist - mittels http://i-tools.org/gzip *- 
von 105 KBytes auf 11 KBytes geschrumpft und braucht statt 45 s "nur" 
noch 5,5 Sekunden. D. h. aber auch, dass die Nettoübertragungsrate 
(SD-Card -> AVR NETIO -> Windows XP Rechner) nur knappe 2 KBytes beträgt 
- das ist verdammt wenig.

Hat jemand einmal nach Flaschenhälsen in dieser Kette gesucht? Wo gibt 
es noch Raum für Optimierungen?

mfg

Jürgen

* Die Onlinekompression hat Ihre Tücken. Das letzte '}' wir immer 
weggeputzt. Mit 3 Leerzeilen, Kommentar, 3 Leerzeilen geht es.

von Peter II (Gast)


Lesenswert?

warum das script nicht auf einen externen webserver legen?

von Max D. (max_d)


Lesenswert?

Die Flaschenhälse können verteilt sein, einer z.b. ist die tatsache, 
dass nur entweder der enc oder die SD angesprochen werden, bei 
ungeschickter programmierung bremsen sich beide gegenseitig aus...
Ein anderer ist das teilweise ziemlich lahme SPI-Interface in SD-Karten 
(grade den 1€/GB china-Dingern) das mit langen Leer-Daten glänzt...

von Jürgen (Gast)


Lesenswert?

Hallo,

beim Lesen einiger Beiträge hier bin ich auf den Ausdruck "delayed ACK" 
gestoßen. Habe daraufhin erst einmal die Paketgröße von 512 auf 1024 
erhöht. Verbesserung - statt 5,5 s (10600 Bytes) sind es jetzt 3,0 s. 
Das macht 3,5 KBytes/s.

mfg

Jürgen

von Jürgen (Gast)


Lesenswert?

Hallo,

nach dem Registryeintrag (Neustart!):

TcpAckFrequency DWORD 1

in

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\In 
terface\<Interface  ID>

wird die Datei in 0,83 s (12 KBytes/s) übertragen.

Der Tipp stammt aus dieser Quelle: 
http://list.zerties.org/pipermail/ethersex-devel/2009-May/000196.html

mfg

Jürgen

von Sebastian H. (sh______)


Lesenswert?

Man kann mit JavaScript auf lokale Dateien zugreifen.
Stichworte zum suchen: HTML5 + FileReader

von Jürgen (Gast)


Lesenswert?

Danke für den Hinweis.

mfg

Jürgen

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.