Datepicker Problem auf einer Buchungsstrecke

Dieses Thema im Forum "Webentwicklung" wurde erstellt von itsmanu28, 16. Mai 2017 .

  1. 16. Mai 2017
    Hallo,

    ich hoffe ich bin hier richtig und zwar haben wir aktuell das Problem, das der Datepicker auf unserer Buchungsplatform nicht funktioniert. Einer unserer wenigen Entwickler korrigiert immer etwas, dann funktioniert es für ca. 10 Minuten und dann funktioniert der Datepicker wieder nicht, ohne das weitere Sachen an der Website geändert wurden. Liegt die Seite im Cache als es funktionierte, funktioniert es auch weiterhin. Funktioniert es nicht mehr und geht mal mit geleerten Cache auf die Seite geht es gar nicht.

    Das Verhalten ist eigentlich so, dass das Einfahrtsdatum immer aktuell +2h lautet und das Ausfahrtsdatum +7 Tage
    Die Uhrzeit ist jeweils die aktuelle zur vollen oder halben Stunde

    Allerdings ist das Einfahrtsdatum nun plötzlich immer leer und es lässt sich auch kein Datum auswählen. Gleichzeitig stellt sich die Uhrzeit automatisch auf 00:01

    In der Google Console finde ich folgenden Fehler:

    Uncaught TypeError: Cannot read property 'setDefaults' of undefined
    at HTMLDocument.<anonymous> (URL/:1069)
    at fire (jquery-1.10.2.js:3048)
    at Object.fireWith [as resolveWith] (jquery-1.10.2.js:3160)
    at Function.ready (jquery-1.10.2.js:433)
    at HTMLDocument.completed (jquery-1.10.2.js:104)

    und dann weiter sticht

    $i.datepicker.setDefaults($i.datepicker.regional[language])

    hervor.

    Zusätzlich TypeError: $i.datepicker is undefined

    Wie gesagt geht es dann immer für ein paar Minuten, bevor es dann wieder nicht mehr funktioniert ohne das wir was ändern ...

    Ideen? Unsere Entwickler sind mittlerweile fast ratlos ...
     

    Anhänge:

  2. 16. Mai 2017
    Hi,

    das kann was mit der Ladezeit zu tun haben, der Datepicker benötigt vermutlich jQuery oder andere Libarys die geladen werden. Wird die Funktion einfach so ausgeführt an einer bestimmten stelle, kann es sein das das Document noch nicht vollständig geladen ist.

    Darauf weißt das hin $i.datepicker is undefined

    Es könnte also helfen die Reihenfolge der ladenden Javascripts zu optimieren oder ggf am Ende der Seite zu laden innerhalb von
    $(function() { } bzw $( document ).ready(function() { });

    am besten die scripte wie jquery und die UI als <script defer> laden. das kann aber auch der Fehler sein, wenn diese async oder defer geladen werden und das angewendete script mit dem datepicker zu früh ausführt bevor diese geladen werden.

    Das er keine Daten anzeigt deutet darauf hin das das setzen dieser auch nicht funktioniert.

    $( ".selector" ).datepicker( "setDate", new Date());
    // oder
    $( ".selector" ).datepicker({ defaultDate: new Date() });

    sollte also erst geladen werden wenn alles andere schon fertig ist. siehe oben, am besten innerhalb einer "document.ready" funktion.
     
    Nanobyte und itsmanu28 gefällt das.
  3. 17. Mai 2017
    jetzt hat es komischerweise seit gestern Abend bis heute morgen um 9 funktioniert, und jetzt geht es wieder nicht mehr. Das ist doch echt seltsam.

    Wie kann die $i funktion plötzlich nicht existieren / funktionieren, wenn es ohne irgendwelche Änderungen bis eben funktionierte.
     

    Anhänge:

  4. 17. Mai 2017
    Selbes Problem, jQuery wird einfach zu spät geladen.

    jQuery muss als aller erstes geladen werden, am besten ganz oben im header, die Scripte danach sollten am besten erst geladen werden wenn alles fertig ist. also <script src="script.js" defer></script> dann läd das erst am ende.

    möglicherweise funktioniert es mal zufällig wenn die seite bzw das script schnell läd und unter last nicht mehr weil dann eine verzögerung auftritt.

    jquery sollte außerdem nicht async geladen werden, zumindest in eurem fall nicht.
     
  5. 18. Mai 2017
    ich vermute ganz stark, dass es was mit den "Stoßzeiten" auf der Seite selbst zu tun hat und demzufolge der Datepicker wahrscheinlich nicht schnell genug lädt wenn zu viele Besucher auf der Seite sind und dann geblockt wird? Das komische ist nämlich, am Dienstag sowie gestern hat der Datepicker plötzlich von ca. 18 Uhr bis morgens um 8 Uhr funktioniert. Zwischen 9:30 und 11:30 hat er dann auch wieder funktioniert und zur Mittagszeit, um 11:50 wieder nicht mehr.

    Unsere Entwickler wollten jetzt unser JQuery "forcen" um es stetig als erstes zu laden, allerdings funktioniert dann wohl der "Rahmen" der Website nicht mehr einwandfrei (dieser beruht auf ein weiteres JQuery). Wirklich ein merkwürdiges Problem
     
  6. 18. Mai 2017
    Protokolle vom Server sagen oft auch einiges aus.

    p.s jQuery ist JavaScript wird also auf dem Rechner ausgeführt. Ich glaube nicht das es unbedingt damit zu tun hat. Zudem Fehler im Code beseitigen, weil Funktionen falsch aufgerufen werden.

    Ist Bootstrap.js etc. auf dem Server oder wird es extern geladen?
     
  7. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.