Ajax Tests für Web Programmierung

Hier werden verschieden Ajax (Asynchrones Javascript und XML) - Techniken ausprobiert. Prototype JS soll da ja Wunder wirken.

Diese Webseite sammelt die bei Suchmaschinen wie google, yahoo oder MSN eingegebenen Suchbegriffe, bringt diese in Form, und gibt Sie wieder aus (z.Zt. 10821 verschiedene Worte). Für die Sammlung der Daten habe ich von einer reinen File Lösung in PHP inzwischen auf SQLite umgestellt. MySQL hat nach der Oracle-Übernahme für mich an Reiz verloren, Postgres und Co. sind bei Domainfactory (wo dieser Server steht) nicht als Standard installiert.

Der einsame, chaotische Web Programmierer
Start des "External Resource Packer" - Projects : 14.03.2008 23:57:48
Letztes Update an dieser Datei                  : 17.08.2011 14:08:02
Finalisierung                                   : 22.04.2009 12:04:32
Fragen und Anregungen bitte an: Michael Wegener aka ironMIKE b.k.a. chaotischer Web Ingenieur =>
  
Aktuelles Problem: Webprogrammierung eines »External Resource Packer« gelöst!
Extern eingebettete JavaScript und CSS Dateien werden immer größer, dadurch wird der Download von Webseiten immer langsamer, wenn die Verbindung mal nicht mit DSL Geschwindigkeit läuft.
Die Lösung: Kompression und Zusammenfassung aufgeteilter Dateien in Single-File downloads
Alle extern eingebundene Scripts werden mit mod_rewrite durch ein PHP Script geschickt, welches die Daten je nach Browser Möglichkeiten optimal zusammenpackt. Klingt simpel und sollte es auch sein :)
Womit wird das ganze getestet?
Natürlich mit möglichst großen Dateien:
  1. Prototype Javascript Framework (129738 Bytes unkomprimiert)
  2. script.aculo.us mit allen Funktionen (144403 Bytes unkomprimiert)
  3. Nach kompression durch Smartoptimizer: 49217 Byte für alles und das mit einem einzigen GET Request!
  4. Scriptaculous Test. Klicken Sie diesen Text an, um ihn verschwinden zu lassen.
Update 18.03.2008 20:20:11
Neue Seite mit viel zusätzlichem JavaScript und einer CSS Datei online: JavaScript Image Cropper

Externe CSS und JavaScript Dateien mit Smart Optimizer optimieren und packen

Der Smartoptimizer ist ein PHP Script von Ali Farhadi um CSS und Javascript Dateien möglichst optimal an den den Browser auszuliefern.

Die folgenden Merkmale zeichnen das Script aus

  • Reduktion der Größe bestehender CSS und Javascript Dateien um bis zu 80% und mehr. Auf dieser Webseite wird die Datenmenge der JavaSript Bibliotheken Prototype und Script.aco.lous von 274141 auf 49217 Byte reduziert (nur noch 18% der Originalgröße)
  • Unnötige HTTP Requests werden vermieden, weil Smartoptimizer mehrere js Dateien aneinander hängt und als eine Datei ausliefert.
  • CSS und JavaScript Dateien werden verkleinert, indem unnötige Kommentare und Leerzeichen entfernt werden. Man kann also einfach die vollständig dokumentierte Version mit allen Komentaren und Euinrückungen direkt in seiner Webseite verwenden.
  • Um nicht bei jeder Anfrage unveränderte Dateien erneut zu packen, legt der Smartoptimizer automatisch einen Zwischenspeicher für die bereits bearbeiteten Dateien an

Die erste Version, nicht zu vergleichen mit dem jetzigen PHP Script

RewriteEngine On
RewriteBase /
RewriteRule ^(.*)\.((js|css))$ gzip_js_css.php?file=$1&filetype=$2 [L]

Mittels mod_rewrite werden alle requests auf .js und .css Dateien durch das Script gzip_js_css.php geleitet.

in meinem Beispiel habe ich die JavaScript Dateien im Document Root des Webservers unter /js/uncompressed/ und die CSS Dateien im Ordner /css/uncompressed/ abgelegt. So kann man im Zweifelsfall testen, ob ein Fehler durch die Kompression der CSS oder JavaScript Dateien hervorgerufen wird.

Lohnt sich das?

Prototype ohne Kompression: ca. 123,17 KiB
Prototype mit gzip-Kompression: ca. 28,25 KiB
Fazit: Mehr als 1/4 der original Größe kann eingespart werden!

Aktueller Source Code in PHP (Quick and Dirty zum Drucken und abtippen^^)

  
Start des UL Link Tests: 14.02.2008 13:27:18
Letztes Update:  27.10.2010 18:24:19
Fragen und Anregungen bitte an: Michael Wegener aka ironMIKE

Geordnete Listen "ul" & "li"

Hier soll getestetet werden, welche Attribute des Anker oder Hyperlink Tags "a" auch in den verschiedenen Suchmaschinen unterstützt bzw. für die Inhaltsermittlung der Zielseiten Verwendung finden.

Suchanfrage Statistiken der Webseite Tintenmarkt.de für Druckerzubehör

  1. Attribut: charset
    Gesetzter Wert: ISO-8859-15
    Zweck: Gibt die Zeichenkodierung der Zielseite an
    Hyperlink: Druckerpatronen
    Verwendung durch Suchmaschinen: selten
  2. Attribut: hreflang
    Gesetzter Wert: de-DE
    Zweck: Gibt die verwendete Sprache auf der Zielseite an
    Hyperlink: Druckerzubehör
    Verwendung durch Suchmaschinen: selten, wird teilweise für die geographische Einordnung verwendet.
  3. Attribut: name
    Gesetzter Wert: ChristShop
    Zweck: Gibt dem Tag einen eindeutigen Namen im DOM-Tree
    Hyperlink: Christ Leder Moden Online Shop
    Verwendung durch Suchmaschinen: manchmal, führt teilweise zu erhebliche Stärkung der Position in den Ergebnislisten.
  4. Attribut: title
    Gesetzter Wert: original und kompatible HP Druckerpatronen
    Zweck: Enthält erweiterte Informationen zum angegebenen Link.
    Hyperlink: HP Druckerpatronen Verwendung durch Crawler: von Fall zu Fall, teilweise erhebliche Verbesserung der SERP Positionen bei Nutzung in Massen.

Test für CSS Patch

Ein Versuch den Internet Explorer von Microsoft ein wenig CSS Regelkonform(er) zu machen. Hilft wenigstens ein bisschen, wenn auch nur mit Hilfe von Java Script und auf Kosten der Darstellungsgeschwindigkeit (eng. render performance).
IE8 CSS 2.1 Kompatibilität via Patch Test

Die letzten 50 User Agent Strings:
linkdex.com/v2.0
htdig/20
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.2; .NET CLR 2.0.50727; .NET CLR 3.5.30729)
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.77 Safari/535.7
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0) Gecko/20100101 Firefox/10.0
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; SIMBAR Enabled; SIMBAR={599F1203-6289-4951-A9F1-6CB9BA518EFB})
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; GTB7.2; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; BRI/2; AskTbORJ/5.14.1.20007)
Acoon v4.9.3 (www.acoon.de)
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; BOIE9;ENUS)
Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.77 Safari/535.7
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; .NET4.0C; BRI/2)
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Win64; x64; Trident/4.0; GTB7.2; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C)
Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.1.16) Gecko/20111108 Iceweasel/3.5.16 (like Firefox/3.5.16)
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET4.0C; .NET4.0E)
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; InfoPath.2)
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; XBLWP7; ZuneWP7)
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; NP06)
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.2; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0; .NET CLR 2.0.50727; InfoPath.2; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; FDM; AskTB5.4)
Acoon v4.9.2 (www.acoon.de)
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB6.6; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; SV1; .NET CLR 1.1.4325; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648)
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.38 Safari/533.4
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; BT Openworld BB; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
Mozilla/5.0 (Windows NT 6.0; WOW64) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.91 Safari/534.30
Mozilla/5.0 (Windows NT 6.0; WOW64) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.91 Safari/534.30
Mozilla/5.0 (Windows NT 6.0; WOW64) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.91 Safari/534.30
Mozilla/5.0 (Windows NT 6.0; WOW64) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.91 Safari/534.30
Mozilla/5.0 (compatible)
Mozilla/6.0 (compatible)
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; SIMBAR={37972090-6802-4b54-8369-1F1D901EF717}; Orange 7.4 ; NaviWoo1.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; HbTools 4.8.4)
Opera/9.80 (Windows NT 6.1; U; Distribution 00; de) Presto/2.10.229 Version/11.60
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; tb-webde/1.7.0)
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SIMBAR={B1E482D3-3465-11E0-826D-78E7D1C222FE}; GTB7.2; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; CPDTDF; .NET4.0C)
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; InfoPath.2; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 1.1.4322)
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; InfoPath.2; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
Mozilla/5.0 (Linux; U; Android 2.2; de-de; GT-I9000 Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1
Mozilla/4.0 (compatible; MSIE 6.0; America Online Browser 1.1; Windows NT 5.1; FunWebProducts; SV1; .NET CLR 1.1.4322)
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; GTB7.2; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 1.1.4322; InfoPath.1; .NET CLR 3.5.30729; .NET CLR 3.0.30618; .NET4.0C)
htdig
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/4.0; GTB6; Embedded Web Browser from: http://bsalsa.com/; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; OfficeLivePatch.1.3; .NET4.0C; OfficeLiveConnector.1.5)
WeViKa
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; HbTools 4.7.7; SpamBlockerUtility 4.8.0)
Mozilla/4.0 (compatible; MSIE 6.0; AOL 9.0; Windows NT 5.1; {B67D7206-A6A1-B001-0A10-9D42E32479C4}; FunWebProducts)
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 1.1.4322; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; BRI/2; Creative AutoUpdate v1.40.01)
Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.63 Safari/534.3
Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_4_11; en) AppleWebKit/533.19.4 (KHTML, like Gecko)
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; HPDTDF; BRI/1; .NET4.0C; BRI/2)
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; SIMBAR Enabled; SIMBAR={8E695BB7-93B7-4c15-860E-76E56C77EBA7}; SIMBAR=0; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0)
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 2.0.50727; .NET4.0C; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; AskTbAVR-W1/5.12.2.17486; BRI/2; MSNIE8A)

Die letzten 50 Suchanfragen:
america online browser 1.1 via www.google.de.
programmieren fehler test google via www.google.de.
seo kicks-robot via www.google.de.
friseurberuf bekleidung via www.google.de.
programmierer seiten via www.google.com.
engin-57@web.de via suche.web.de.
html5 3d view via www.google.de.
arbeitskittel friseur via www.google.de.
ul spalten css via www.google.de.
baum navigations menue typo3 via www.google.de.
berufskleidung friseure via www.google.de.
via www.google.de.
friseurbekleidung via yahoo.
media center pc 6.0 via www.google.de.
programmierer seiten via www.google.de.
skatermarken liste via www.google.com.
officelivepatch via www.google.de.
arbeitskleidung friseur via www.google.de.
arbeitskleidung friseure via www.google.de.
web programmierer via www.google.de.
via www.google.de.
web programmieren via www.google.de.

Die letzten 35 neuen Suchbegriffe des Tages

  • america
  • engin-57@web.de
    • engine engines
    • engines engine
    • engin engine
    • enginen engine
    • einsame engine
  • english_d_a2.htm
    • england eu:
      mwaysolutions:
      com
    • eu:
      mwaysolutions:
      com england
    • einzellnen england
  • scorm
    • seiren screeny
    • screeny seiren
  • moddata
    • methode method
    • method methode
  • file.php
  • hrscompressed-wide.js
    • horizontal horizontales
    • horizontales horizontal
    • horizontaler horizontal
    • horizontale horizontal
    • horizentale horizontal
  • xn5p1szxsv4.js
  • vb.net
  • gecko.webbrowser
  • custom.js
    • cascading customer
    • customer cascading
    • custom:
      js?ver=3:
      0:
      4 cascading
    • 'customarray' cascading
    • customgates cascading
  • functions
    • funktioniert funktionirt
    • funktionirt funktioniert
    • functions:
      js funktioniert
    • funktionieren funktioniert
    • funzt funktioniert
  • customgates
    • cascading customer
    • customer cascading
    • custom:
      js?ver=3:
      0:
      4 cascading
    • 'customarray' cascading
    • custom:
      js cascading
  • appointmentsui.asp?
    • avant
  • pbvwebess
    • pubj payback:
      js
    • payback:
      js pubj
  • slayer-min.js
  • slayer
  • social
    • siegl-2
  • plugin
    • plugins pflichangaben
    • pflichangaben plugins
    • plusone plugins
    • plusone:
      js plugins
  • sharedpages
  • wiring_navi
    • www:
      haarmessgeräte:
      de www:
      remkevanstaveren:
      nl
    • www:
      remkevanstaveren:
      nl www:
      haarmessgeräte:
      de
    • www_orange-page-common_0cc616eda2521c1fe788d1aaa5084cb5:
      gz:
      js www:
      haarmessgeräte:
      de
    • www:
      rheinzink:
      de www:
      haarmessgeräte:
      de
  • avnavigator
  • pioneer%20corporation
  • companyserverdown.html
    • components combined:
      js:
      h-709556802:
      pack
    • combined:
      js:
      h-709556802:
      pack components
    • combine components

Web Script Laufzeit: 1.821714 Sekunden, davon 0.802926 SQL Queries