(Translated by
https://www.hiragana.jp/
)
Bearbeiten von „Kamel Diskussion:J*“ (Absatz) – Kamelopedia
Bearbeiten von „Kamel Diskussion:J*“ (Absatz)
Wechseln zu:
Navigation
,
Suche
!
Du bist nicht
angemeldet
.
Wenn du deine Änderung speicherst, wird deine aktuelle IP-Adresse in der Versionsgeschichte aufgezeichnet und ist damit öffentlich einsehbar.
Spamschutzprüfung. Hier
NICHTS
eintragen!
Spamschutzprüfung. Hier
NICHTS
eintragen!
== [[MediaWiki:Seitenempfehlung.js]] == Hi J*, ich hab vor ein paar Wochen ja [[MediaWiki:Seitenempfehlung.js|das da]] zusammengeschustert. Funktioniert soweit echt gut und *aucheinbisschenstolzbin*. Nichts desto Trotz ... magst du da mal drübergucken so wegen codereview und so? 1.) Werden da auch ein paar globale Variablen benutzt (böser WiMu), was man vielleicht ändern sollte (aber <code>var hwNS</code> soll vom Benutzer.js aus überschreibbar sein/bleiben/werden) 2.) wäre es mit Sicherheit besser, das ganze objektorientiert zu machen ... nach dem Muster <code>hw.add(entry)</code>, <code>hw.remove(entry)</code>, <code>hw.read()</code>, usw. Aber Objektorientierung in Javascript – das hab' ich trotz zahlreicher Versuche bis heute noch nicht geschnallt (WiMu zu doof für). Danke und Grüße, --[[Kamel:WiMu|WiMu]] 18:30, 15. Mai 2011 (NNZ) :Moin WiMu, :Gerne schau ich da mal drüber! Schon mal ne Kleinigkeit zu 1+2: :*'''Javascript-Objektorientierung:''' In Javascript ist zwar alles ein Objekt (Funktionen, Arrays, Strings, einfach alles), aber so richtig objektorientiert ist die Sprache nicht. So was ähnliches wie Klassen und deren Instanzen [http://de.wikipedia.org/wiki/JavaScript#Konstruktor-Funktionen gibt's zwar], nur ist das etwas, hm, gewöhnungsbedürftig und ob die von allen Browsern verstanden werden, weiß auch kein Mensch. :*'''Sinn ergeben''' tut das in den meisten Fällen hier aber sowieso nicht, da wir nur eine einzige Instanz der allermeisten Sachen hier brauchen – genau für sowas hatte ich [[Forum:@Technik-Kamele:_Javascript_aufräumen#Vorschlag_2|das hier]] intendiert, nämlich genau um globale Variablen und Funktionen zu einem Thema "wegkapseln" zu können (die wären dann trotzdem noch überschreibbar, wenn man etwas aufpasst). Ist natürlich etwas behelfsmäßig, wäre aber meiner Ansicht nach genau so am einfachsten – da müsste man sich halt entscheiden, ob man das verwenden möchte, oder nicht. :Soweit für's erste, für's drübersehen brauch ich noch etwas Zeit. :Liebe Grüße :--[[Kamel:J*|J*]] 17:44, 16. Mai 2011 (NNZ) ::So, drübergeschaut; sieht wirklich ziemlich gut aus, und die Tatsache, dass das alles auch funktioniert, gibt dem auch recht. Ein wenig Kleinkram hätte ich da noch: 1. Ja, die globalen Variablen sollte man wegkapseln (s.o.) 2. Funktionen sollten das tun, was der Bezeichner aussagt, bzw. was man erwarten würde. Bei addHW würde ich vermuten, dass die Funktion nicht erfordert, dass sie durch readHWList aufgerufen wird, also nicht direkt aufgerufen werden soll (zumindest dokumentieren sollte man das) und dass die Funktion, falls readHWList gebraucht wird, die Funktion intern selbst aufruft; bei readHWList würde ich erwarten, dass die Funktion nur zum Lesen da ist. Bin mir jetzt nicht ganz sicher, ob klar ist, was ich sagen will, wenn du magst, kann ich das auch einfach mal so hinwurschteln, wie ich das meine. Ansonsten ist der Code einfach zu verstehen und ordentlich geschrieben! Achja: SortHW kannst du dir einfacher machen (und schneller): erst die Liste sortieren, dann einmal drüber iterieren und doppelte (die dann ja aufeinander folgen) ignorieren. Liebe Grüße --[[Kamel:J*|J*]] :::Hi, Danke fürs reviewen. Ich guck mal, ob's die Variablen alle global braucht, wahrscheinlich lassen die sich ja auch von einer zur nächsten Funktion weiterreichen - den Rest dann Wegkapseln. Wegen der komischen Funktionen: da ist ein quick&dirty bugfix dran schuld. In der [http://kamelopedia.net/index.php?title=Kamel:WiMu/vector.js&oldid=439340 ursprünglichen Fassung] war's genau so, wie du es vorschlägst, addHW wirklich nur zum adden, readHW wirklich nur zum lesen, usw. Das Problem daran war aber [http://kamelopedia.net/index.php/Forum:Kamelopedia-Update_Fr%C3%BChjahr_2011_-_BUGS#Empfehlungsliste_.28mal_wieder.29 dieser bug]. Da Kamel u.U. auch mehrere Tabs/Fenster geöffnet haben kann, reicht es nicht, wenn die Empfehlungsliste nur beim Seitenaufruf ausgelesen wird, weil die Liste in einem anderen Tab/Fenster geändert worden sein könnte, wenn der Daumen gedrückt wird. Darum muss man vor dem Drücken die Liste in jedem Fall nochmal auslesen ... und da das ja asynchron abläuft, hab ichs nicht anders hingekriegt, als den Funktionsaufruf so komisch mit in in die Lese-Funktion zu stecken ([http://api.jquery.com/ajaxStop/ .ajaxStop()] und ein paar andere Dinge hab' ich ausprobiert - ohne Erfolg). Hm ... das war jetzt arg verschwurbelt, hoffe, du verstehst trotzdem das Problem (für 'ne Lösung wär ich dankbar!). :::Super Tipp mit der Sortier-Funktion (hatte das zunächst ohne Alphabetisierung und nicht daran gedacht, dass es mit Alphabet ja viel einfacher ist, doppelte rauszuschmeißen). Werde ich die Tage mal umschreiben. Grüße, --[[Kamel:WiMu|WiMu]] 18:39, 17. Mai 2011 (NNZ)
Zusammenfassung:
Mit dem Speichern dieser Seite …
… versichere ich, dass ich den Beitrag selbst verfasst habe bzw. dass er keine fremden Rechte verletzt
… willige ich ein, meinen Beitrag unter der
Creative Commons Attribution/Share-Alike Lizenz 3.0
und der
GNU-Lizenz für freie Dokumentation
zu veröffentlichen
… akzeptiere ich die
Kamelknigge
Abbrechen
|
Bearbeitungshilfe
(neues Fenster)
Zum Vermeiden unnötiger Artikelversionen bitte den
Vorschau-Button
benutzen!
Navigationsmenü
Ich
Ein neues Kamel registrieren
Anmelden
Namensräume
Kamelbau
Diskussion
Varianten
Ansichten
Lesen
Bearbeiten
+
Versionen/Autoren
Aktionen
Suche
Navigation
Hauptseite
Wegweiser
Zufällige Seite
Empfohlene Seiten
Schwesterprojekte
KameloNews
Gute Frage
Gute Idee
KameloBooks
Kamelionary
Spiele & Co.
Mitmachen
Letzte Änderungen
Herden-Portal
Forum
Chat
Qualitätssicherung
Hilfe
Werkzeuge
Links hierhin
Änderungen an verlinkten Seiten
Kamelbeiträge
Logbücher
Spezialseiten
Seiteninformationen