Category: JavaScript | Java Script

JavaScript Unterschied zwischen & vs &&

Nachdem ich in früheren Artikel den Unterschied zwischen && und & bereits für Java und PHP erkläutert habe, jetzt auch der JavaScript Unterschied zwischen & vs &&. Die Verhaltensweise ist bei den genannten Programmiersprache identisch, dies zeigt auch das Beispiel im Blogartikel. Abhängig von der Programmierung kann es auch notwendig sein ein & zu verwenden, falls in den Funktionen weitere Aktionen durchgeführt werden, die unabhängig vom Ergebnis des If-Else benötigt werden.

JavaScript: Unterschied zwischen && vs &

JavaScript: Unterschied zwischen && vs &

Grundsätzlich müssen bei einer UND-Verknüpfung bzw. der Benutzung von UND-Operator alle Bedingungen WAHR bzw. TRUE sein, ansonsten wird der Else-Fall ausgewählt. Der Unterschied zwischen && und & ist jetzt nur, was soll passieren, wenn eine Bedingung bereits FALS ist und somit klar ist, dass der Else-Zweig ausgewählt wird.

JavaScript-Beispiel: Unterschied & vs &&

[javascript]
function Hello(){

alert("Hello");
return false;
}

function World(){

alert("World");
return false;
}

function change(){

alert("Mit einem & -> ");

if(Hello() & World()){
alert("!");
}else{
alert("?");
}

alert("Mit zwei & -> ");

if(Hello() && World()){
alert("!");
}else{
alert("?");
}
}
[/javascript]

Passend dazu gibt es auch ein JsFiddle: JavaScript Unterschied zwischen & vs &&

Performance & vs &&

Zur Performance-Steigerung sollten immer && (zwei mal &) verwendet werden, weil dann bereits nach der ersten fehlerhaften Bedingung abgebrochen wird und nicht noch alle weitere Untersucht werden.

JavaScript Frameworks: HEADLESS WEBSITE TESTING

Über einen Artikel im Spiegel bin ich auf PhantomJS (http://phantomjs.org/) aufmerksam geworden, welches nach eigener Aussage die Lösung für folgende Herausforderungen ist: Headless Website Testing, Screen Capture, Page Automation und Network Monitoring. Neben den Herausforderungen nennt die Seite noch weitere Vertreter seiner Art:

  • Jasmine (http://pivotal.github.com/jasmine/): a behavior-driven development framework for testing JavaScript code
  • QUnit (http://qunitjs.com/): A JavaScript Unit Testing framework
  • Mocha (http://visionmedia.github.com/mocha/): is a feature-rich JavaScript test framework running on node and the browser, making asynchronous testing simple and fun.
  • Capybara (https://github.com/jnicklas/capybara): helps you test web applications by simulating how a real user would interact with your app.

Eine Übersicht gibt es hier: https://github.com/ariya/phantomjs/wiki/Headless-Testing

Selenium: Eindeutige Werte erzeugen mit aktuellem Datum

Zur Kontrolle bzw. zur Erhöhung der Übersichtlichkeit ist es in automatisierten Testfälle erforderlich, das die eingetragenen Werte eindeutig sind. Dies ist ggf. sogar durch die Anwendung erwünscht. Zur Erzeugung eines individuellen Wertes kann in Selenium beispielweise die Datumsfunktion genutzt werden. Selenium selbst stellt keine eigene Datums-Variable zur Verfügung, aber JavaScript tut dies und Selenium führt beliebigen JavaScript Code aus. Somit kann eine einmalige Variable schnell erzeugt werden.

[HTML]

store javascript{var d=(new Date()).getTime(); "myName" + d.toString()} uniqueName

[/HTML]

Für die spätere Verifizierung wird der per JavaScript erzeugte eindeutige Idenfifiert in einer Variable gespeichert und im nächsten Beispiel eingefügt. Grundsätzlich erhöht es die Lesbarkeit bzw. auch die Wartung, wenn alle Variablen, wie in der Programmierung üblich, am Anfang definiert werden.

[HTML]

type id=name ${uniqueName}

[/HTML]

Kurz gebloggt: zwei JavaScript Frameworks zum Spiele entwickeln

Mit HTML5, Canvas Elementen und CSS3 erschließen sich immer neue Möglichkeiten, Interaktionen direkt nativ im Browser umzusetzen. Finde momentan den Blog nicht mehr in welchem auf das folgende Wiki verlinkt wurde https://github.com/DaRaFF/jsgamewiki/wiki/Game-Tutorials in dem sich eine Reihe interessanter Links befinden. Im t3n-Blog bzw. ein Kollege hat mir heute weitere JavaScript Frameworks genannt, welche sich für die Online Rollenspiel Entwicklung eignen: zum einen http://rpgjs.com/ und zum anderen aus Japan stammend http://asiajin.com/blog/2011/04/20/enchant-js-new-html5javascript-game-engine-for-smartphones/

Typo3 X UA Compatible Meta

Mit der Veröffentlichung vom Internet Explorer 9 und der automatischen Installation auf Windows 7 Systemen, stellt man womöglich fest, das die eigene Homepage anders aussieht bzw. JavaScript nicht mehr wie gewünscht funktioniert. Je nach Größe der Seite und Umfang des anzupassenden Codes, besteht die Notwendigkeit einer Übergangslösung, bis der Code entsprechend angepasst wurde.

Dafür bietet sich u.a. die Meta Definition “X-UA-Compatible” an, welche den Internet Explorer vorschreibt, wie er die Seite zu interpretieren hat. Diese Kompatibilitätseinstellung muss direkt nach dem head-Tag erfolgen, höchstens der title-Tag darf noch dazwischen stehen. In Typo3 wird der Head meist vollautomatisch erzeugt. Das Hinzufügen von headerData wird also nicht den erwünschten Erfolg bringen:

[php]
# TypoScript Code
page.headerData.1 = TEXT
page.headerData.1.value =
[/php]

Steht zumeist unter der Einbindung von Stylesheet Angaben und JavaScript Bibliotheken. Abhilfe schafft die direkte Modifzierung des head-Tags:

[php]
# TypoScript Code
page.headTag =
[/php]

Einer Übersicht aller möglichen Codes findet ihr im Microsoft eigenen “Internet Explorer Compatibility Center” unter http://msdn.microsoft.com/de-de/ie/cc405106.

[random_content group_id=”211″ num_posts=”1″]