#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: datepicker geht nicht.JPG Dateigröße: 18,9 KB Aufrufe: 581 Datepicker geht.JPG Dateigröße: 85,3 KB Aufrufe: 249 + Multi-Zitat Zitieren
#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. + Multi-Zitat Zitieren
#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: fehler1.png Dateigröße: 25,4 KB Aufrufe: 215 fehler2.png Dateigröße: 10,1 KB Aufrufe: 225 fehler3.png Dateigröße: 11,7 KB Aufrufe: 227 fehler4.png Dateigröße: 35 KB Aufrufe: 213 fehler5.png Dateigröße: 27,8 KB Aufrufe: 228 + Multi-Zitat Zitieren
#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. + Multi-Zitat Zitieren
#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 + Multi-Zitat Zitieren
#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? + Multi-Zitat Zitieren