Posts Tagged ‘Safari’

Sonntag, 2. Juli 2017

Stockende Texteingabe in Web-Formularen mit hunderten HTML Input-Elementen unter Safari

Seit einigen Monaten (wahrscheinlich als Kollateralschaden eines Safari-Updates) habe ich ein Problem mit einer selber geschriebenen Web-Applikation: Die Eingabe von Zeichen in Textfelder eines Web-Formulars ist extrem langsam.

Zuerst verdächtigte eine veraltete jQuery-Bibliothek und onkeyup– und onblur-Attribute als Ursache, doch ein Update von jQuery hat keine Abhilfe geschafft.

Heute reichte es mir, und ich nahm erneut einen Anlauf, das Problem einzugrenzen. Eine Google-Suche förderte schnurstracks Probleme mit Safari unter iOS zu Tage, welche vor einigen Jahren bestanden (oder immer noch bestehen). Dies führte mich auf die Spur eines Stackexchange-Artikels, der identisches Verhalten auch in Safari unter macOS berichtete:

Safari on Mac responses slow when typing on a webpage with lots of <input type=“text”> fields

Das liess mich aufhorchen — denn die Applikation zeigt zwar nicht gerade hundert Eingabefelder an, doch in mehreren HTML-Tabellen werden alle Inhalte von Datenbank-Tabellen aufgelistet, woraus der Benutzer mit einem Klick auf einen Formular-Button den gewünschten Datensatz auswählen kann. Auf der Seite finden sich deshalb problemlos einige hundert input[button]-Elemente.

Könnte es sein, dass diese Elemente Safari spürbar langsamer machen? Ja!

Meine Lösung: Ich habe die Formular-Buttons in der Liste mit hinterlegtem JavaScript onclick mit HTML-Anchors ersetzt:

<a href="javascript:clicked();">wählen</a>

Seither fühlt sich der Browser wieder wie 2017 an, und nicht wie Netscape von 1998.

Tags: , , , , , ,
Labels: Apple

Keine Kommentare | neuen Kommentar verfassen

Freitag, 14. April 2017

Safari stürzt neuerdings beim Drag & Drop von Bildern ab

Das letzte offizielle Update von Safari auf Version 10.1 (11603.1.30.0.34) hat einen nervigen Bug mitgebracht: Packt man eine Grafik, die man in einem neuen Tab geöffnet hat (Rechtsklick auf Grafik, „Open Image in New Tab“) und will diese auf den Desktop ziehen, stürzt das Tab unmittelbar ab:

Anschliessend öffnet sich ein Fenster, mit welchem man die Fehlermeldung zu Apple senden kann:

Der Fehler zeigt sich bei mir unter macOS 10.11.6 mit allen installierten Sicherheitsupdates.

Das Problem ist nicht auf mich beschränkt, andere Leute haben es auch (gemäss Apple Diskussionsforen).

Das deaktivieren der Extensions 1Password und 1Blocker hat nichts gefruchtet — das Problem muss meiner Meinung wirklich an Safari selbst liegen.

Tags: , , , ,
Labels: Apple, IT

1 Kommentar | neuen Kommentar verfassen

Samstag, 10. Januar 2015

Safari benötigt 30 Sekunden zum Starten (ungelöst)

Seit einigen Wochen plagt mein Mac OS X 10.9 Mavericks auf einem Mac mini (Late 2012) ein merkwürdiges Problem: Beim Programmstart von Safari springt das Dock-Icon während genau 30 Sekunden auf und ab, bevor das Browser-Fenster erscheint. Ein Logout und ein Login in mein Benutzerkonto beheben das Problem nicht.

Leider habe ich bis jetzt keine Lösung für das Problem gefunden, weshalb ich hier erst einmal dokumentiere, was ich diesbezüglich herausgefunden habe.

Das Apple-Tool fs_usage ist mein Freund. Hier ein Beispiel-Auszug der Dateizugriffe des Safari-Prozesses:

# fs_usage
...
12:37:38.681696  open              F=13       (RW____)  /dev/dtracehelper                                                                                                                                    0.000026   Safari.6649750
12:37:38.681703  ioctl             F=13                                                                                                                                                      0.000006   Safari.6649750
12:37:38.681708  close             F=13                                                                                                                                                                      0.000005   Safari.6649750
12:37:38.681816  stat64                                 /System/Library/StagedFrameworks/Safari/WebInspectorUI.framework/Versions/A/WebInspectorUI                                                           0.000011   Safari.6649750
12:37:38.681836  open              F=13       (R_____)  /System/Library/StagedFrameworks/Safari/WebInspectorUI.framework/Versions/A/WebInspectorUI                                                           0.000018   Safari.6649750
12:37:38.681840  pread             F=13   B=0x1000     O=0x00000000                                                                                                                                          0.000004   Safari.6649750
12:37:38.681842  pread             F=13   B=0x1000     O=0x00004000                                                                                                                                          0.000002   Safari.6649750
12:37:38.681846  fcntl             F=13                                                                                                                                                              0.000002   Safari.6649750
12:37:38.681887  close             F=13                                                                                                                                                                      0.000003   Safari.6649750
12:37:38.684252  socket            F=13                                                                                                                                           0.000007   Safari.6649750
12:37:38.684284  connect           F=13     private/var/run/usbmuxd                                                                                                                                          0.000020   Safari.6649750
12:37:38.684288  ioctl             F=13                                                                                                                                                      0.000002   Safari.6649750
12:37:38.684365  close             F=14                                                                                                                                                                      0.000004   Safari.6649750
12:37:38.684375  sendto            F=13   B=0x10                                                                                                                                                             0.000008   Safari.6649750
12:37:38.684380  sendto            F=13   B=0x1f2                                                                                                                                                            0.000004   Safari.6649750
12:38:08.684465  close             F=14                                                                                                                                                                      0.000018   Safari.6649750
12:38:08.684588  close             F=13                                                                                                                                                                      0.000107   Safari.6649750
12:38:08.688500  stat64                 [  2]           /Library/Managed Preferences>>>>>>>>>>>>>>>>>>>>>>>>>>>>                                                                                             0.000005   Safari.6649750
12:38:08.688805  open              F=13       (R_____)  /Library/Preferences/com.apple.security.plist                                                                                                        0.000010   Safari.6649750
12:38:08.688811  close             F=13                                                                                                                                                                      0.000002   Safari.6649750
12:38:08.689103  stat64                                 /Users/mario/Library/Preferences/com.apple.security.plist                                                                                            0.000043   Safari.6649750
12:38:08.689108  stat64                 [  2]           /Library/Preferences/com.apple.security-common.plist                                                                                                 0.000003   Safari.6649750
12:38:08.689201  getattrlist                            /Users                                                                                                                                               0.000009   Safari.6649750

Zwischen 12:37:38 und 12:38:08 dreht der Prozess Däumchen. Hinweis gibt die folgende Zeile:

12:37:38.684284  connect           F=13     private/var/run/usbmuxd                                                                                                                                          0.000020   Safari.6649750

Safari scheint 30 Sekunden auf den connect zu private/var/run/usbmuxd zu warten.

In Console.app erscheint zudem genau nach 30 Sekunden folgende Meldung:

...
10.01.15 20:35:58.844 Safari[72526]: _SubscribeForMuxNotifications (thread 0x7fff74373310): USBMuxListenerCreate: Operation timed out
...

usbmuxd ist der Daemon, mit welchem iTunes resp. Mac OS X mit iPhones „spricht“ — wenn ich die Erklärungen verstehe so etwas wie TCP-over-USB: Usbmux — The iPhone Wiki.

Tags: , , , , , ,
Labels: Apple

Keine Kommentare | neuen Kommentar verfassen

Montag, 15. Dezember 2014

Wenn man das SWISS-Osterei partout nicht im Adventskalender 2014 finden kann …

… ja dann hilft nur die gute, alte Web-Entwickler-Konsole:

Swiss Adventskalender 2014

Tags: , , , , , , , ,
Labels: Web

Keine Kommentare | neuen Kommentar verfassen

Sonntag, 3. November 2013

(Aus dem Archiv) phpMyAdmin-dumps downloaded through Safari

Der vorliegende Artikel habe ich ursprünglich irgendwann einmal ab 2002 auf meinem damaligen Linux-Entwicklungsserver im Web publiziert. Da ich das bloggen erst 2005 entdeckt habe, waren die Tipps in einer grossen HTML-Seite untergebracht. Anlässlich einer Aufräumaktion auf dem Server habe ich mich entschieden, die „Perlen“ über meine heutige Kommunikationsplattform ins Web zu posaunen. Seitdem ich die Artikel verfasst habe, sind viele Tage ins Land gegangen — ob der Artikel noch Gültigkeit hat, entscheidet der geneigte Leser selber.

ACHTUNG: Dem Artikel liegt wahrscheinlich Safari 1.x zu Grunde. Mittlerweile sind der Internet Explorer und der Firefox geschlagen und WebKit ist die dominante Plattform für’s Web-Browsing. Der hier erwähnte „Fehler“ ist längst behoben.

Somehow, the dump get’s fucked up because of the line endings. They’re all converted to \r. If you’re trying to restore the dump on a linux machine, nothing works. If you use the following command, everything should be fine:

tr '\015' '\012' < dump-mac.sql > dump-linux.sql

The other way ‚round … Converting linux- to mac-files:

tr '\012' '\015' < unix-format-file > mac-friendly-file

After you’ve treated your dumps, insert’em into your database:

mysql --user=user --password=password database < dump-linux.sql

Tags: , ,
Labels: Apple

Keine Kommentare | neuen Kommentar verfassen

Samstag, 2. Juni 2012

Bockende Web-Formulare von Hand (sprich: mit etwas JavaScript) absenden

Da versuchte ich also vor einigen Tagen, mich mit Safari unter Mac OS X 10.7 Lion in die Web-Mail-Lösung meines Arbeitgebers einzuloggen — doch bereits beim Eingabeformular für Benutzernamen und Passwort steckte ich fest:

Irgendwie fehlte hier der Senden-Button, welcher unter Windows im Microsoft Internet Explorer präsent war! Nun, da ich in meiner Freizeit als Web-Entwickler tätig bin, hatte ich selbstverständlich das Developer-Menu in Safari aktiviert. Dies erlaubte mir nun, mittels Rechtsklick irgendwo in den Hintergrund der Web-Seite zu klicken, Inspect Element auszuwählen und danach zügig in die (JavaScript-)Konsole zu wechseln.

Dort gab ich basierend auf Wissen, welches ich seinerzeit (im letzten Jahrhundert) über SelfHTML erlernt hatte, folgenden Befehl ein, gefolgt von einer Zeilenschaltung (je nach Tastatur Enter oder Return):

document.forms[0].submit();

Und schwupp landete ich auf der nächsten Seite des Web-Mail-Logins. Und dort wurde mir beschieden, dass mein Browser und Computer als unsicher eingestuft seien, weil es nicht möglich sei, ein ActiveX-Plugin zu installieren:

Bisher war ich ja immer der Meinung, dass gerade das umgekehrte der Fall ist. Ich helfe ein stattliches Vermögen wetten, dass mein Mac potentiell sicherer als die Windows-Kisten ist, die wir auf der Arbeit benutzen — und ich damit erst noch produktiver bin und das Gerät Zugfahrten ohne Strom länger übersteht, weil nicht hundert Hilfs-, Überwachungs- und Sicherheitsapplikationen im Hintergrund laufen und Strom fressen. Aber bei Corporate IT lernt man ja nie aus …

Nebenbei: Das Thema „Bring your own device“ ging gerade kürzlich im Zusammenhang mit IBM durch die Presse. Und wurde dann auch noch aus anderer Warte kommentiert.

Tags: , , , , , , , , ,
Labels: Web

Keine Kommentare | neuen Kommentar verfassen

Sonntag, 27. Mai 2012

Wenn Safari plötzlich keine PDFs mehr speichern will …

Da habe ich also vor einer Weile mein MacBook Air auf Mac OS X Lion 10.7 gehievt und kämpfte seit einiger Zeit damit, dass Safari mir das Speichern jedes beliebigen PDFs verweigerte (sowohl mittels Apfel-S als auch über File > Save As…):

Als ich dem Problem vor einigen Tagen endlich ein für allemal auf den Grund gehen wollte, realisierte ich rasch einmal, dass nicht etwa Safaris native PDF-Vorschau aktiviert war, sondern das von Adobe Reader hinter meinem Rücken installierte Plugin.

Obwohl Adobe in seiner Knowledgebase aufzeigt, wie man das Plugin deaktiviert, war dies bei mir schlicht nicht möglich, weil die entsprechende Checkbox ausgegraut war:

Adobe erwähnt das Problem freundlicherweise in ihrer Knowledgebase (statt das Problem zu flicken, typisch!). Deshalb musste ich mit Handarbeit und dem Terminal hinter die Sache:

# rm -rf "/Library/Internet Plug-Ins/AdobePDFViewer.plugin"

Quelle: How do I set Safari on Mac OS X to show PDFs using Preview instead of Adobe Reader?

Dann noch Safari neu starten, und die PDFs wurden wieder wie gewohnt mit Safari angezeigt — und konnten so problemlos mittels Apfel-S irgendwo auf die Festplatte gesichert werden.

Tags: , , , , ,
Labels: Apple

4 Kommentare | neuen Kommentar verfassen

Mittwoch, 10. Juni 2009

Microsoft festgefahren

Microsoft’s monopoly essentially attacked itself as if an autoimmune disorder; the company has worked so hard to prevent new competitors from entering the market that it now can’t offer anything really new itself either.

Quelle: AppleInsider | Snow Leopard gets richer, thinner, cheaper than Windows 7

Mit jedem Tag fällt Microsoft einen Schritt weiter hinter die Konkurrenz. Die langen Produktentwicklungszyklen, die Microsoft in vielen Bereichen an den Tag legt (Client-Betriebssystem, Browser, Service Packs, etc.) sind im Zeitalter des Internets und der ewigen Betas ein immens grosser Nachteil. Nur scheinen das die Entscheider bei Microsoft nicht bemerkt zu haben und vertrauen immer noch darauf, dass die Grosskunden, die den grössten Teil des Umsatzes generieren, noch konservativer und unbeweglicher sind als der Softwarekonzern.

Schauen wir uns einige konkrete Produkte an:

Während für Mac OS X 10.5 seit Oktober 2007 sieben kleinere Upgrades herausgekommen sind, haben wir bei Windows Vista bisher zwei grosse, fette Service Packs gesehen. Schaut man sich zudem an, wie viele Betriebssystem-Versionen seit 2000 herausgekommen sind, sieht die Bilanz für Microsoft noch schlimmer aus: Erst im nächsten Jahr – so Gates … eh, Gott will – wird Windows 7 erscheinen, was vier Betriebsssystem-Versionen in 10 Jahren entspricht. Bei Mac OS X werden es deren sechs sein.

Weiteres Beispiel gefällig? Browser. Der Internet Explorer 6 erschien im … bitte festhalten … August 2001! Gerade im schnelllebigen Web ist es Pflicht, dass ein Unternehmen fähig ist, innert 365 Tagen eine neue Browserversion herauszubringen, die neuesten Entwicklungen Rechnung trägt. Ah, und standardkonform sollte das Ding natürlich auch sein. Nachdem Microsoft wieder einige Gänge zugelegt hat, ist nun mittlerweile Internet Explorer 8 draussen. Das Produkt hinkt aber – wen wunderts – immer noch Jahre hinter der Konkurrenz hinterher. Aber bitte, es soll dies niemand den letzten verbliebenen Endanwender stecken. 8 Jahre – 3 Versionen. Safari 1.0 erschien im Juni 2003; die Version 4.0 ist gestern Montag veröffentlicht worden. 6 Jahre – 4 Versionen.

Na, klingelts?

Microsoft gerät deshalb ins Hintertreffen, weil es anscheinend gerade dieses Ur-Gestein im Software-Markt nicht schafft, Produktupdates derart klein zu halten, dass seine Entwickler sie tatsächlich innert der selbst gesetzten Frist fertigstellen kann. Weniger ist mehr! Ob es an der veralteten Code-Basis liegt? Die Konkurrenz zeigt jedenfalls nicht nur, dass man ehrgeizige Zeitpläne durchaus einhalten kann, sondern die neuen Versionen auch mit tatsächlich erlebbaren Features anreichern kann. Aber vielleicht sind die Microsoftschen Produktzyklen nicht die Ursache des Mankos, sondern nur die Symptome von viel grösseren internen Problemen.

Weiterführender Link: Why Apple wins. every. time.

Oh, you like the Pre. Here’s the 3G for 99 bucks. YThanks for the three days, Palm. And how about the G2 having no headphone jack. Apple doesn’t even have to win with this kind of competition. Seriously, who is the guy at Google who didn’t step up and flag that at the meeting?

Kurz: Wenn heute jemand Blitzkriege führt, dann ist es Apple. Auf diese Panzertruppe ist jeder Kompetitor neidisch.

Tags: ,
Labels: Apple, IT

Keine Kommentare | neuen Kommentar verfassen

Dienstag, 23. Dezember 2008

Seitenumbruch in der Druckversion von Safari

Heute habe ich mir an Safari 3.2 die Zähne ausgebissen: Der Browser wollte partout keinen Seitenumbruch vor einem div drucken, obwohl ich diesem den CSS-Stil page-break-before:always; zugewiesen hatte.

Safari unterstützt dieses CSS-Attribut eigentlich seit Version 1.2. Doch was zum Teufel? … Unter Firefox wurde der Seitenumbruch vor dem Element tadellos gedruckt und div ist auch wie von W3C gefordert ein Block-Element, weshalb es sich hier offensichtlich um ein Browser-Problem handeln musste.

Nach einigem Pröbeln realisierte ich dann, dass das Eltern-div im CSS, welches für die Druckausgabe verwendet wurde (media="print" für Kenner), gefloated war. Nachdem ich diese Eigenschaft entfernte, wurde der Seitenumbruch problemlos gedruckt.

Tags: , , , ,
Labels: Allgemein

1 Kommentar | neuen Kommentar verfassen