Ergebnis 1 bis 5 von 5

Thema: .js datei aktualisieren/ nachladen mit ajax ?

  1. #1
    Neuer Benutzer
    Registriert seit
    02.12.2013
    Beiträge
    1

    Standard .js datei aktualisieren/ nachladen mit ajax ?

    Hello,

    Ich möchte eine externe Javascript Datei nachladen.
    Bzw. die bestehende externe Datei aktualisieren ohne dabei jedesmal den Browser neu laden zu müssen.
    In dem Videotraining heist es, dass nur txt jason möglich ist . Das verstehe ich nicht, da Ajax ist doch Javascript wieso also nicht gleich javascript ?

    Verwenden möchte ich jquery kann mir jemand bitte helfen .


    Vielen Dank für Deine Hilfe

    Zwei Fragen hätte ich noch .

    Wie kann ich $.getScript('deindateiname.js'); in eine externe Datei auslagern , damit ich nicht jede Website umschreiben muss ?
    Ist das wirklich Ajax ?




    index.html
    <html>
    <head>
    <style type="text/css">
    #kontainer {
    width:100px; height:100px; background-color:#ededed; color:blue;
    }
    </style>
    <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.13/jquery-ui.min.js">
    </script>
    <script src="deindateiname.js"></scriipt>
    <script type="text/javascript">

    $.getScript('deindateiname.js'); /* Lade deindateiname.js */

    </script>


    </head>
    <body>


    <button id="xx1">
    <div id="kontainer"></div>


    </body>
    </html>


    externe Javascript Datei deindateiname.js die aktualisiert in der Index Ausgegeben wird mit $.getScript

    $(document).ready(function(){

    $('#kontainer').hide(); /*verstecke Kontainer */

    $('#xx1').click(function(){ /* Bei Klick auf den Button wird Kontainer angezeigt */



    $('#kontainer').show();




    });



    /*Ausgabe Text */


    $('#kontainer').html('Ändert sich dieser Text wird er auf der Website ebenso geändert . Somit ist mein Problem mit dem Browsercache gelöst, Vielen Dank !! ');


    });
    Geändert von hundtal (03.12.2013 um 17:30 Uhr)

  2. #2
    Erfahrener Benutzer
    Registriert seit
    13.04.2007
    Beiträge
    975

    Standard

    Du kannst auch Javascript mittels Ajax nachladen. Das ist also grundsätzlich kein Thema. Du musst nur dafür sorgen, dass der Code in die aktuelle Seite eingebettet wird.

    Damit kriegst Du aber nie den "Ursprungszustand" wiederhergestellt, der vor dem ersten Laden des Skripts herrschte. Wenn Du also ein Skript aktualisierst, dann muss Dir klar sein, dass es auf einem anderen Zustand ausgeführt wird als das ursprüngliche Skript:
    Code:
    Ursprungszustand -> Erstes Laden und Ausführen des Skripts -> Zustand nach Ausführen des Skripts -> Zweites Laden und Ausführen des Skripts -> Zustand nach dem zweiten Ausführen des Skripts
    Zwei Möglichkeiten gibt es:
    1. Nachladen des Skripts eingebettet in HTML (z.B. mit .load() oder $.ajax()). Der dataType ist dann "html" und das eingebettete Skript wird automatisch ausgeführt
    2. Nachladen des Skripts als Javascript-Datei (normalerweise .js). Das geht z.B. mit $.getScript

  3. #3
    Erfahrener Benutzer
    Registriert seit
    11.05.2011
    Ort
    Erde
    Beiträge
    605

    Standard

    Doch, das geht ... sogar das Entladen. Aber zunächst bin ich erstmal überrascht, dass ich devnull, unserem JavaScript-Guru, widersprechen kann ... hehe ... also lehne ich mich aus dem Fenster ...

    Zunächst hätte devnull recht, wenn das JavaScript "plain" (ohne Struktur und direkt mit var = "irgendwas") loslegt. Ebenfalls hat er recht, wenn das eine JavaScript Datei ist, die mit vielen functions() ausgestattet ist. Mein Trick ist ein anderer ...

    Code:
    var [nameDerErweiterung] = {
       init: function(){ ... },
       machwas: function(string){ ... },
       hossa: function(a,b,c){ ... }
    }
    Das ist total zulässiges JavaScript und einfach eine schöne Art, indirekt einen Hauch von OOP ins JavaScript zu bekommen. Sogar "this" (nach Zuweisung) lässt sich schön verwenden ...

    Der "unload" (es ist in dem Sinne keiner) funktioniert dann via "[nameDerErweiterung] = null;" (oder einfach nur mit einem anderen Wert überschreiben).

    Der Vorteil:
    - ich überschreibe das Ausgangsscript beim normalen Seitenaufbau nicht
    - kann gezielt nachladen
    - kann gezielt verwerfen
    - ein Hauch OOP und einfachste Parameterübergabe

    Zugegeben, es ist eine Umstellung, JavaScript so zu schreiben - aber wenn Du siehst, wie performant sich so ein Konstrukt gegenüber einer Datei mit zig function() verhält ...

    Achtung: Durch dieses Nachladen umgehst Du nicht eine mögliche Cache-Problematik!!! Du bekommst also u. U. eine 304 auf eine nochmals angeforderte Datei - die wird identisch sein mit der vorigen Auslieferung und beinhaltet eine kurzfristige Änderung nicht. Aber das nur als kleiner Blick in die Zukunft ... auch die Lösung ist simpel.

    Viel Erfolg und ich brauche jetzt einen Kaffee. Damit ich stark bin, wenn der devnull mir Manieren beibringt ... ^^

  4. #4
    Erfahrener Benutzer
    Registriert seit
    13.04.2007
    Beiträge
    975

    Standard

    Falls Du tatsächlich der Meinung bist, dass Du Manieren benötigst, dann machen wir dafür aber einen separaten Thread auf

    Deine Beschreibung ist natürlich korrekt, bezieht aber keine "externen" Änderungen mit ein. Sollte Dein Javascript-Code beispielsweise Änderungen am DOM vornehmen, dann trägt das Entladen/Nachladen nicht dazu bei, dass der Ursprungszustand der Seite vor der Ausführung des nachgeladenen Javascriptcodes wiederhergestellt wird. Der nachgeladene Code findet also (unter Umständen) einen anderen Ausgangszustand vor als der ursprüngliche Code.

  5. #5
    Erfahrener Benutzer
    Registriert seit
    11.05.2011
    Ort
    Erde
    Beiträge
    605

    Standard

    hihi ... sehr schön!! Aber nein, den Thread erwarte/möchte ich nicht ... stattdessen gab es ein fettes Kreuz mit "devnull hat mir RECHT gegeben!" im Kalender. Da fiel der Weihnachtsmann stumpf vom Schlitten ...

    Das ist natürlich korrekt, dass bereits vorgenommene Änderungen am DOM mit einem Nachladen nicht rückabgewickelt werden ... hättest Du DOM angesprochen, hätte ich auch wieder 'nen ganz lieben gemacht ...

    Schön, dass wir uns also sowas von einig sind ... aber vielleicht kannst Du mir ja gleich mal die Leviten lesen (eröffne gleich einen Thread für die FB.ui()). ^^

Ähnliche Themen

  1. JS-Datei in Klasse nachladen
    Von katgirl im Forum JavaScript
    Antworten: 4
    Letzter Beitrag: 16.11.2011, 18:51
  2. Mootools und PHP Befehl an Datei senden und aktualisieren?
    Von wallcity im Forum Serverseitige Skriptsprachen
    Antworten: 0
    Letzter Beitrag: 04.03.2010, 09:18
  3. AJAX - eine Flash-Animation (also swf-Datei) nachladen
    Von sinisa.tadic im Forum Allgemein
    Antworten: 0
    Letzter Beitrag: 09.07.2009, 15:59
  4. Mittels HTTP Request in ein div geladene PHP Datei aktualisieren
    Von telelino im Forum Serverseitige Skriptsprachen
    Antworten: 4
    Letzter Beitrag: 30.06.2008, 20:21
  5. Ajax-Einstieg mit praktischem Beispiel - Datei nachladen
    Von dope_dope im Forum Serverseitige Skriptsprachen
    Antworten: 0
    Letzter Beitrag: 13.07.2006, 09:21

Stichworte

Lesezeichen

Lesezeichen
  • An Mister Wong übertragenMister Wong
  • An YiGG.de übertragenYiGG.de
  • An Google übertragenGoogle
  • An del.icio.us übertragendel.icio.us

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •