zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Javascript & Ajax
Seite neu laden Wert in Input schreiben plus Focus und Cursorposition

Antwort
 
LinkBack Themen-Optionen Ansicht
  #21 (permalink)  
Alt 03.12.2015, 14:31
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.977
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von Parallax Beitrag anzeigen
Das mit dem JavaScript: im EventHandler stand in mehreren Beispielen und Büchern, also habe ichs so übernommen...
Es ist aber falsch, wer schreibt denn Bücher mit so einem Quatsch?
Und zeige mir mal "mehrere Beispiele" wo man sowas noch findet. Ich glaube du verwechselst das mit dem Pseudoprotokoll im href Attribut von Links. So wie du es verwendest ist es nur ein ungenutztes Label

Zitat:
Zitat von Parallax Beitrag anzeigen
Der User möchte, dass bei jedem eingegebenen Buchstaben die Tabelle aktualisiert wird, deswegen sende ich bei jedem Tastendruck einen AJAX Request...
Ja, das habe ich mittlerweile verstanden, trotzdem ist es sinnvoller nicht auf jeden Tastendruck sofort einen Ajaxrequest zu verschicken, da die Antwort langsamer kommt als wenn jemand schnell tippt. Dann überschreibst du evtl. das getippte. Daher ist so eine Verzögerung sowohl im Client als auch wegen der Belastung des Servers sinnvoll.

Zitat:
Zitat von Parallax Beitrag anzeigen
der JS Code ist nicht Inline, sondern in externen .js Files gespeichert...
Aber nicht die Events

Zitat:
Zitat von Parallax Beitrag anzeigen
Meine Frage zwecks Cursorposition und Focus ist daher eigentlich nur interessehalber, ob es den eine Möglichkeit gibt, dieses Problem im bestehenden Code zu lösen...

Da dies aber scheinbar nur problembehaftet und über umständliches Abfangen bestimmter Tasten funktioniert, ..
Ich hab doch Code gepostet, wo das nichts umständlich ist. Es reicht eine Abfrage, du musst aber einen anderen Event benutzen und auf Inlineevents verzichten.
Mit Zitat antworten
Sponsored Links
  #22 (permalink)  
Alt 03.12.2015, 15:48
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 18.03.2015
Beiträge: 56
Parallax befindet sich auf einem aufstrebenden Ast
Standard

Aso, etz verstehe ich was du mit inline meinst...

Ich find das persönlich besser, da ich beim durchschauen der xhtml dateien gleich sehe welches event die function triggert...

Das mit dem JavaScript:funktion() stand in mehreren büchern... was ist den der Nachteil davon?

Das mit dem überschreiben stellt sich nicht ein, da ja bei jedem Tastendruck der aktuelle Wert in JS gespeichert wird, und beim abgeschlossenen Request wieder zurück in die Inputs geschrieben wird... Das haut eigentlich problemlos hin... Kann das mit dem Delay mal ausprobieren, ob das die situation verbessert....
Die Abfrage der ca. 15000 Datensätze dauert auch nicht lange, das problem ist dann eher die Schleife... in dieser wird jeder Datensatz mit mysqli_fetch_object ausgelesen und in ein Array gespeichert, welches dann in den html code der Tabelle eingesetzt wird... diese Schleife braucht gut 5 sekunden... Gibt es dafür eine bessere Methode das ganze zu beschleunigen?

Und wie sollte ich den generierten HTML Code den übergeben, weil du ja meinst, echo wäre nicht so angebracht?

Zuletzt noch zu deiner Lösung... Da sehe ich ein Problem...

Angenommen jemand schreibt in ein Inputfeld: Projjekt1
nun fällt ihm auf er findet keine Datensätze da er Projekt mit doppeltem j geschrieben hat... er klickt also mit der maus zwischen j und e... Es wird kein Script ausgeführt, da er ja kein Tastendruck erfolgte... nun drückt er Backspace um das letzte j zu löschen... Nun wird die Tabelle neu geladen, die korregierte Eingabe "Projekt1" wieder in das Inputfeld geschrieben, allerdings der Cursor ans Ende des Strings gesetzt obwohl er vor dem betätigen der Backspacetaste zwischen j und e stand.... daher denke ich, ist es einfacher den Tabellenkopf nur einmalig zu laden, und bei der sortierung nur den Tabellenbody zu ändern... was meinst du dazu?

Mfg
Parallax
Mit Zitat antworten
Sponsored Links
  #23 (permalink)  
Alt 03.12.2015, 16:13
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.977
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von Parallax Beitrag anzeigen
Ich find das persönlich besser, da ich beim durchschauen der xhtml dateien gleich sehe welches event die function triggert...
Naja, du musst das aber in der JS Datei sehen, da dort die Eventfunktionen stehen.

Zudem ist es unflexibel, du hast kein Eventobjekt und kannst nicht mit this auf das Elemen zugreifen.

Zitat:
Zitat von Parallax Beitrag anzeigen
Das mit dem JavaScript:funktion() stand in mehreren büchern...
Wie gesagt, das steht mit Sicherheit in keinem Buch, weil es falsch ist. Du verwechselst das mit dem Pseudoprotokoll.

Zitat:
Zitat von Parallax Beitrag anzeigen
Die Abfrage der ca. 15000 Datensätze dauert auch nicht lange, das problem ist dann eher die Schleife... in dieser wird jeder Datensatz mit mysqli_fetch_object ausgelesen und in ein Array gespeichert, welches dann in den html code der Tabelle eingesetzt wird... diese Schleife braucht gut 5 sekunden... Gibt es dafür eine bessere Methode das ganze zu beschleunigen?
Zum einen ist das nicht das Problem. Allein der (http) Request und Response dauert wesentlich länger als jemand tippen kann. D.h. wenn jemand schnell ein Wort tippt hast x requests (pro Tatsendruck) und je nachdem welcher response als letzter ankommt (das muss nicht chronologisch sein) wird dann das Feld aktualisiert.

Wenn eine Datenbankabfrage mit so wenig Daten so lange dauert, dann gibt es sicher eine Methode das zu beschleunigen, aber dazu müsste man Details Wissen.

Zitat:
Zitat von Parallax Beitrag anzeigen
Und wie sollte ich den generierten HTML Code den übergeben, weil du ja meinst, echo wäre nicht so angebracht?
Naja, wenn du in einem PHP Code nur HTML ausgibst, dann reicht ein /?> der Code danach wird direkt ausgegeben

Zitat:
Zitat von Parallax Beitrag anzeigen
Zuletzt noch zu deiner Lösung... Da sehe ich ein Problem...

Angenommen jemand schreibt in ein Inputfeld: Projjekt1
nun fällt ihm auf er findet keine Datensätze da er Projekt mit doppeltem j geschrieben hat... er klickt also mit der maus zwischen j und e... Es wird kein Script ausgeführt, da er ja kein Tastendruck erfolgte...
Das Skript wurde aber vorher ausgeführt, der Timeout geht ja nicht verloten, wenn du das inputfeld verläßt.

Zitat:
Zitat von Parallax Beitrag anzeigen
nun drückt er Backspace um das letzte j zu löschen... Nun wird die Tabelle neu geladen, die korregierte Eingabe "Projekt1" wieder in das Inputfeld geschrieben, allerdings der Cursor ans Ende des Strings gesetzt obwohl er vor dem betätigen der Backspacetaste zwischen j und e stand....
Das ist eine weiterere (für mich neue) Bedingung deines Skriptes, die sich natürlich auch umsetzen liesse. Aber ich weiß nicht, was dein Vorschlag daran ändert.
Zitat:
Zitat von Parallax Beitrag anzeigen
daher denke ich, ist es einfacher den Tabellenkopf nur einmalig zu laden, und bei der sortierung nur den Tabellenbody zu ändern... was meinst du dazu?
Welche Sortierung?

Ich habe mich mit der Tabellenthematik nicht auseinander gesetzt. Für mich ging es bisher nur das Cursorproblem. Das zu verstehen fand ich schon schwierig genug.

Wie gesagt ich finde es kompliziert anhand von Beschreibungen zu versuchen zu verstehen was du meinst. Für mich wäre es einfacher, wenn ich Code sehe könnte der das macht was du meinst.

Das ist z.b. bei diesem Punkt auch wieder so. Dein PHP Code enthält keinerlei Anzeichen dafür, dass irgendwo Werte geändert oder sortiert werden. Da erklärst du uns erst hinterher. Nur Wissen wir dadurch immer noch nicht was der Code macht, da wir ihn nicht kennen.

Was ich aber sagen kann, dass es für das Cursorproblem keine Rolle spielt ob der HTML Code dynamisch ausgetausch wird oder nicht.
Mit Zitat antworten
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Zugriff auf Wert in einer Tabelle? Ann Javascript & Ajax 3 03.09.2014 10:17
Focus bei ID geht nicht, warum??? denniz CSS 2 20.04.2010 00:10
Cursorposition in einem input ermitteln Scheppertreiber Javascript & Ajax 3 26.03.2010 12:03


Alle Zeitangaben in WEZ +2. Es ist jetzt 21:04 Uhr.