welche auswirkung hat das erfordernis eines plugins auf die conversion-rate in einer web-app?
<p>ein hci-professor von mir stellte in einer kleinen studie fest, dass das hinzufügen eines zusätzlichen plugins (java silverlight ext) zum anzeigen bestimmter inhalte zu einem rückgang der benutzer, die die aufgabe ausführen, um mehr als 50% führte. benutzer haben die anforderung erkannt, wollten das plugin nicht installieren oder haben die aufgabe auf andere weise nicht abgeschlossen, sobald sie dazu aufgefordert wurden.</p><p>natürlich ist dies bei adobe flash oder anderen äußerst verbreiteten plugins nicht der fall, aber ich habe mich gefragt, ob forschungsergebnisse oder statistiken verfügbar sind, um festzustellen, welche auswirkungen eine solche anforderung auf benutzer hat, die eine aufgabe ausführen. es ist offensichtlich ein zusätzlicher schritt, der immer zum verlust von <em>einigen</em> benutzern führt, aber das erfordernis eines plugins scheint in web-apps besonders tödlich zu sein.</p>
<p>die antwort ist nicht so einfach wie sie zuerst erscheint, da sie von ihrer anwendung abhängt. in vielen fällen sind die auswirkungen negativ, da der benutzer software auf seinem computer installieren muss, was aus allen möglichen gründen viele menschen davon abhält, diese zu verwenden.</p><p>gleichzeitig kann es für heiße neue plugins oder beliebte addons eine positive auswirkung haben. flash ist so verbreitet, dass es wahrscheinlich nur geringe oder keine negativen auswirkungen hat und (wenn es gut verwendet wird) die leute mehr auf ihre website aufmerksam macht.</p><p>silverlight ist interessant. es ist nicht ungewöhnlich, dass sie es benötigen, wenn sie microsoft-websites verwenden. und sobald es heruntergeladen wurde, werden einige leute froh sein, eine site gefunden zu haben, die es verwendet.</p><p>das anfordern eines plugins ist in ordnung, wenn die meisten benutzer es bereits heruntergeladen haben. das erfordernis, dass ihre benutzer explizit ein plugin herunterladen, das sie wahrscheinlich nicht haben, ist ein echtes minus. die verwendung einer, die ihre benutzer wahrscheinlich bereits haben, kann sehr positiv sein.</p>
<p>ich verwende <a href="http://noscript.net/features">noscript</a> , aber liste jede site auf, die ich tatsächlich verwenden möchte.</p><blockquote> <p>wenn sie noscript installieren, werden javascript, java, flash silverlight und möglicherweise andere ausführbare inhalte standardmäßig <em> blockiert </em>. sie können <em> die ausführung von </em> javascript/java/... selektiv auf den websites zulassen, denen sie vertrauen. sie können einer site erlauben, skripte vorübergehend auszuführen, wenn sie nur zufällig oder dauerhaft surfen, wenn sie sie häufig besuchen und ihr wirklich vertrauen. dies bedeutet, dass noscript aus ihren eigenen browsergewohnheiten lernt und nach einer weile im hintergrund verschwindet. wenn sie jedoch auf eine schädliche webseite stoßen, wird es sofort wieder angezeigt, um ihren tag zu retten.</p> <p>wenn sie eine site mit blockierten skripten durchsuchen, wird eine benachrichtigung angezeigt, die der vom popupblocker ausgegebenen ähnelt.<br> sehen sie sich das symbol oder das statusleistensymbol an, um die aktuellen noscript-berechtigungen zu erfahren ...</p> <p><img src="https://i.stack.imgur.com/zfxkv.png" alt="http://noscript.net/noscript/ss0.png" title="noscript tooltip screen shot"></p> </blockquote> ja gibt es, beschäfftige dich mal mit dem thema "linkbuilding" und "seo". natürlich kannst du auch deine webseite via besuchertauschssysteme bewerben, wo du locker die 1.000 besucher pro tag erreichen kannst, aber da sollte man sich die frage stellen was bringt es einem? sieht zwar im counter und in der statistik schön aus, aber das war es auch schon. 1 freiwilliger besucher ist mir persönlich mehrwert als 10.000 besucher die über forcierte traffic-kampagnen auf die webseite gekommen sind. Ich habe auch überall nach die software gesucht aber nichts gefunden.
  
Und jetzt aufeinmal kommt es ohne lange sich zu bemühen, ich finde es cool.
  
Der punkt ist das ich seit dem ich es gekauft habe, habe ich es knapp 2 monate benutzt und seitdem nicht mehr weil es ausgeflippt ist. eine individuell entwickelte webanwendung ist oft preiswerter als eine standardsoftware. ihr vorteil besteht darin, dass sie nur die kosten für die einmalige entwicklung der software investieren müssen. da sie zum eigentümer der software werden, entstehen keine weiteren lizenzkosten und zwar unabhängig von der benutzeranzahl und der dauer der nutzung. weitere informationen finden sie in unserem wiki-beitrag über die kosten einer individualsoftware (<https://www.trinidat.de/software-wiki/individualsoftware-kosten/>). <h2>moderne html5-techniken zum ändern von klassen</h2><p>moderne browser haben <a href="https://developer.mozilla.org/en-us/docs/dom/element.classlist"><strong>classlist</strong></a> hinzugefügt, das methoden zur verfügung stellt, mit denen klassen leichter ohne bibliotheken bearbeitet werden können:</p><pre><code>document.getelementbyid("myelement").classlist.add('myclass'); document.getelementbyid("myelement").classlist.remove('myclass'); if ( document.getelementbyid("myelement").classlist.contains('myclass') ) document.getelementbyid("myelement").classlist.toggle('myclass'); </code></pre><p>leider funktionieren diese in internet explorer vor version 10 nicht, obwohl es ein <a href="http://en.wikipedia.org/wiki/shim\_(computing)">shim</a> gibt, um die unterstützung für ie8 und ie9 hinzuzufügen, die unter <a href="https://developer.mozilla.org/en-us/docs/dom/element.classlist">diese seite</a> verfügbar ist. es wird jedoch immer mehr <a href="http://caniuse.com/#feat=classlist">unterstützt</a> .</p><h2>einfache browserübergreifende lösung</h2><p>die standard-javascript-methode zur auswahl eines elements ist <a href="https://developer.mozilla.org/en-us/docs/dom/document.getelementbyid"><code>document.getelementbyid("id")</code></a> . dies wird in den folgenden beispielen verwendet. sie können elemente natürlich auch auf andere weise erhalten. in der richtigen situation können sie stattdessen einfach <code>this</code> verwenden ins detail geht dies nicht in den rahmen der antwort.</p><h3>so ändern sie alle klassen für ein element:</h3><p>um alle vorhandenen klassen durch eine oder mehrere neue klassen zu ersetzen, legen sie das classname-attribut fest:</p><pre><code>document.getelementbyid("myelement").classname = "myclass"; </code></pre><p>(sie können eine durch leerzeichen getrennte liste verwenden, um mehrere klassen anzuwenden.)</p><h3>so fügen sie einem element eine zusätzliche klasse hinzu:</h3><p>um einem element eine klasse hinzuzufügen, ohne vorhandene werte zu entfernen/zu beeinflussen, fügen sie ein leerzeichen und den neuen klassennamen wie folgt hinzu:</p><pre><code>document.getelementbyid("myelement").classname += " myclass"; </code></pre><h3>so entfernen sie eine klasse aus einem element:</h3><p>um eine einzelne klasse zu einem element zu entfernen, ohne andere potenzielle klassen zu beeinflussen, ist ein einfacher regex-ersetzen erforderlich:</p><pre><code>document.getelementbyid("myelement").classname = document.getelementbyid("myelement").classname.replace ( /(?:^|\s)myclass(?!\s)/g , '' ) /* code wrapped for readability - above is all one statement */ </code></pre><p>eine erklärung dieser regex lautet wie folgt:</p><pre><code>(?:^|\s) # match the start of the string, or any single whitespace character myclass # the literal text for the classname to remove (?!\s) # negative lookahead to verify the above is the whole classname # ensures there is no non-space character following # (i.e. must be end of string or a space) </code></pre><p>das flag <code>g</code> weist das ersetzen an, nach bedarf zu wiederholen, falls der klassenname mehrmals hinzugefügt wurde.</p><h3>so prüfen sie, ob eine klasse bereits auf ein element angewendet wurde:</h3><p>der gleiche reguläre ausdruck, der oben zum entfernen einer klasse verwendet wurde, kann auch zur überprüfung verwendet werden, ob eine bestimmte klasse vorhanden ist:</p><pre><code>if ( document.getelementbyid("myelement").classname.match(/(?:^|\s)myclass(?!\s)/) ) </code></pre><p><br/></p><h3>zuweisen dieser aktionen zu onclick-ereignissen:</h3><p>es ist zwar möglich, javascript direkt in die html-ereignisattribute (z. b. <code>onclick="this.classname+=' myclass'"</code>) zu schreiben, dies wird jedoch nicht empfohlen. insbesondere bei größeren anwendungen wird durch die trennung von html-markup von javascript-interaktionslogik ein wartungsfähigerer code erzielt.</p><p>der erste schritt dazu ist das erstellen einer funktion und das aufrufen der funktion im onclick-attribut. beispiel:</p><pre><code>&lt;script type="text/javascript"&gt; function changeclass(){ // code examples from above } &lt;/script&gt; ... &lt;button onclick="changeclass()"&gt;my button&lt;/button&gt; </code></pre><p><sub><em>(es ist nicht erforderlich, dass dieser code in skript-tags enthalten ist. dies ist lediglich der kürze halber als beispiel gedacht. das einschließen von javascript in eine andere datei ist möglicherweise geeigneter.)</em></sub></p><p>der zweite schritt besteht darin, das onclick-ereignis aus dem html-code in javascript zu verschieben, beispielsweise mit <a href="https://developer.mozilla.org/en-us/docs/dom/element.addeventlistener">addeventlistener</a> </p><pre><code>&lt;script type="text/javascript"&gt; function changeclass(){ // code examples from above } window.onload = function(){ document.getelementbyid("myelement").addeventlistener( 'click', changeclass); } &lt;/script&gt; ... &lt;button id="myelement"&gt;my button&lt;/button&gt; </code></pre><p>(beachten sie, dass der window.onload-teil erforderlich ist, damit der inhalt dieser funktion <em>ausgeführt wird, nachdem der html-code</em> vollständig geladen wurde. andernfalls ist das myelement möglicherweise nicht vorhanden, wenn der javascript-code aufgerufen wird, sodass die zeile fehlschlägt .)</p><p><br/></p><h2>javascript frameworks und bibliotheken</h2><p>der obige code ist alles in standard-javascript enthalten. es ist jedoch üblich, entweder ein framework oder eine bibliothek zu verwenden, um allgemeine aufgaben zu vereinfachen und von behobenen fehlern und edge-fällen zu profitieren, an die sie beim schreiben des codes nicht denken.</p><p>während einige leute es für übertrieben halten, ein ~ 50 kb-framework für das einfache ändern einer klasse hinzuzufügen, ist die überlegung, wenn sie umfangreiche javascript-arbeiten ausführen oder etwas, das ungewöhnliches cross-browser-verhalten hat, eine überlegung wert.</p><p><em>(in groben zügen handelt es sich bei einer bibliothek um eine reihe von werkzeugen, die für eine bestimmte aufgabe entwickelt wurden, während ein framework im allgemeinen mehrere bibliotheken enthält und eine reihe von aufgaben ausführt.)</em></p><p>die obigen beispiele wurden im folgenden mit <a href="http://jquery.com">jquery</a> wiedergegeben, wahrscheinlich der am häufigsten verwendeten javascript-bibliothek (obwohl es auch andere gibt, die es zu untersuchen gilt).</p><p>(beachten sie, dass <code>$</code> hier das jquery-objekt ist.)</p><h3>klassen mit jquery ändern:</h3><pre><code>$('#myelement').addclass('myclass'); $('#myelement').removeclass('myclass'); if ( $('#myelement').hasclass('myclass') ) </code></pre><p>darüber hinaus bietet jquery eine verknüpfung zum hinzufügen einer klasse, wenn sie nicht angewendet wird, oder zum entfernen einer klasse, die folgendes ausführt:</p><pre><code>$('#myelement').toggleclass('myclass'); </code></pre><p><br/></p><h3>zuweisen einer funktion zu einem klickereignis mit jquery:</h3><pre><code>$('#myelement').click(changeclass); </code></pre><p>oder, ohne eine id zu benötigen:</p><pre><code>$(':button:contains(my button)').click(changeclass); </code></pre><p><br/></p> <p>ein standard-fortschrittsbalken und eine anzahl von karten wären wahrscheinlich ausreichend. ich bin jedoch der meinung, dass dies etwas ist, bei dem sie ein bisschen kreativ sein könnten: der effekt eines streudiagramms könnte nizza sein, sie könnten auch die neuesten pixel am hellsten machen und die älteren verblassen lassen.</p><p>wenn sie das generierte pixelplot in bezug auf die leistung speichern, sodass es nicht jedes mal berechnet werden muss, wenn es angezeigt wird, sollte dies wirklich kein problem sein. ich denke, ich würde nicht das canvas-tag verwenden, sondern ein vom server generiertes image. die aktualisierungsaktion selbst sollte nicht zu kompliziert sein: sie müssen nur das bild abrufen, das sie bereits haben, und das letzte update (oder aktualisierungen seit dem letzten rendern des bildes) abrufen und genau diese pixel ändern. wenn sie sie nach zeit verblassen möchten, verblassen sie zuerst das bereits vorhandene bild und fügen sie dann den neuesten zeitstempel der überblendungsaktion hinzu, sodass sie dies nur einmal am tag oder einmal pro stunde oder was auch immer tun. (sie können es auch bei jedem schritt tun.)</p><p>jetzt ist es weitaus komplexer als nötig, um nur fortschrittsinformationen bereitzustellen. aber es könnte eine sehr nette funktion sein und interessant zu bauen sein! und ich denke, es ist sehr machbar, es so zu implementieren, dass es ihre ressourcen nicht belastet.</p> "Apps " haben das unbändige Verlangen, - NICHT- auf einer SD- Karte zu parken. Die meisten brauchen eine innige Bildung zum System und würden 'verschoben' nicht starten und funktionieren. Deshalb bieten sie die SD- Funktion erst garnicht an. Ein reg-ex wird viel schneller sein als html agility pack. 

 Aber Sie sollten bedenken, dass HTML nicht immer gut geformt sein muss. Die Suche nach den richtigen Daten, die Sie nur mit reg-ex verwenden möchten, kann fehlschlagen. Browser sind sehr fehlerverzeihend. 

 Agility Pack ist ein großartiges Werkzeug. Es bietet eine Menge Funktionen für den Speicher, den es verbraucht. <p>sie müssen die lizenz unter keinen umständen in der gui anzeigen.</p><p>für software, die unter der apache license version 2.0 (aplv2) lizenziert ist, ist es völlig in ordnung, die software auf die von ihnen vorgeschlagene weise zu ändern. diese lizenz fördert änderungen. die lizenz garantiert ihnen die freiheit, "powered by svg edit" in ihrer geänderten version zu entfernen.</p><p>informationen zu ihren verpflichtungen in bezug auf die mit der aplv2-software gelieferte notices-datei finden sie in aplv2 (abschnitt 4(b))). sie müssen den inhalt in einer weise anzeigen, die der software. (wohlgemerkt, svg edit erledigt dies wahrscheinlich bereits.) sie können das "powered by svg edit" möglicherweise nicht entfernen, wenn dies aus der notices-datei stammt. wenn sie jedoch die notices-datei und den quellcode verteilen, dann sind sie davon ausgenommen. weitere informationen zu ihren optionen finden sie in abschnitt 4(b) der aplv2).</p><p>in jedem fall ist das, was sie tun möchten, nicht unhöflich, insbesondere wenn dadurch ihre abgeleitete arbeit besser wird.</p> Hallo Andreas .H,  
  
es freut mich, dass Sie BonusDrive nutzen. Die App unterstützt das bewusste Fahren und belohnt Sie dazu noch für umsichtiges Fahren.  
Weniger schön ist es natürlich, dass die App nicht, wie erwartet, funktioniert.   
  
Gerne möchte ich mir das Ganze zur Klärung an meine Kollegen von BonusDrive weiterleiten. Bitte lassen Sie mir hierzu Ihre Vertragsnummer, Ihre vollständigen Kontaktdaten sowie Ihren Usernamen an [allianzhilft.dialog@allianz.de](mailto:allianzhilft.dialog@allianz.de) zukommen und wir machen von dort aus gemeinsam weiter.  
  
Beste Grüße  
Vanessa