DotNetNuke Download Zähler – Wunsch oder Wahrheit ?

Ein Blick in den Seitenquellcode der Seite www.dotnetnuke.com zeigt den nachfolgenden Code:

<script type="text/javascript">
        var interval = .1;
        var counter, count = 0, updatedate;

        $(document).ready(function () {
                $.ajax({
                        type: "GET",
                        url: "/DesktopModules/Ticker/TickerXml.aspx",
                        dataType: "xml",
                        success: function (xml) {
                                $(xml).find("Ticker").each(function () {
                                        var $ticker = $(this);
                                        counter = $ticker.find('counter').text();
                                        updatedate = $ticker.find('updateddate').text();
                                });
                        }
                });

                if(typeof(counter) == "undefined") {
                        counter = 5568487;
                        updatedate = '10/20/2010 12:00:00 AM';
                }
                /*counter = 5408328;
                updatedate = '9/23/2010 1:38:40 PM';*/

                setTimeout(function () { getcounter(); }, 250);
                setInterval("getcounter();", interval * 60 * 1000);
        });

        function addCommas(number)
        {
                number += '';
                x = number.split('.');
                x1 = x[0];
                x2 = x.length > 1 ? '.' + x[1] : '';
                var rgx = /(\d+)(\d{3})/;
                while (rgx.test(x1))
                {
                        x1 = x1.replace(rgx, '$1' + ',' + '$2');
                }
                return x1 + x2;
        }

        function getcounter()
        {
                var currenttime = new Date();

                updatedate = new Date(Date.parse(updatedate));
                var seconds = calculate(updatedate, currenttime);
                var addedupdates = Math.floor(seconds / (60*interval));

                if (count == 0)
                {
                        count = counter;
                        count = parseInt(count) + parseInt(addedupdates);
                }
                counter = addCommas(count);

                var counterarray = counter.split(",");
                var  html = '';
                for(var  i=0; i<counterarray.length; i++)
                {
                        html += '<span>'+counterarray[i]+'</span>';
                }
                $(".downloadCounter").html('Over <strong>'+html+'</strong> Downloads');

                count++;
        }

        function calculate(update, current) {
                current = new Date(current);
                update = new Date(update);

                var sec = current.getTime() - update.getTime();
                if (isNaN(sec)) {
                        //alert("input data is incorrect!");
                        $(".downloadCounter").html('Over <strong>5</strong> <strong>500</strong> <strong>000</strong> Downloads');
                }

                var second = 1000, minute = 60 * second, hour = 60 * minute, day = 24 * hour;

                var days = Math.floor(sec / day);
                sec -= days * day;
                var hours = Math.floor(sec / hour);
                sec -= hours * hour;
                var minutes = Math.floor(sec / minute);
                sec -= minutes * minute;
                var seconds = Math.floor(sec / second);

                var totalsecond = seconds + (minutes * 60) + (60 * 60 * hours) + (60 * 60 * hours * days);
                return totalsecond;
        }
</script>

Hat DotNetNuke das wirklich nötig?

Wäre nicht eine andere (an der Wahrheit angelehnte) Lösung aufrichtiger !
Ich bin übrigens über diesen Twitter Beitrag auf diesen Umstand gestolpert, und konnte es eigentlich gar nicht glauben, bis…
… bis ich selbst kurz im Seitenquelltext nachgeschaut habe.

Damit auch Nicht Programmierer wissen was da steht, hier die Aufklärung:

Durch das Script wird ein Zähler erstellt, welcher die Anzahl Downloads alle 6 Sekunden um 1 erhöht. Egal ob tatsächlich Downloads stattgefunden haben, oder nicht.

Unbelievable

3 Gedanken zu „DotNetNuke Download Zähler – Wunsch oder Wahrheit ?“

  1. Ich finde, hier ist gar nichts falsch. Wenn ein Webmaster weiss, wie oft etwas gedownloadet wird, kann er monatlich den Basiswert aktualisieren und die Downloadfrequenz, und zur Visualisierung JavaScript einsetzen. Die Zahlen können ein paar % abweichen, aber who cares? Seien wir mal Ehrlich: ob es jetzt 6’470’000 oder 6’470’235 sind ist völlig wurst. Hauptsache die Leute bemerken, dass es ein weit verbreitetes System ist.

    Und ganz nebenbei: wenn immer solche Statistiken auftauchen, ist normalerweise ein JS dahinter. LG, Daniel :p

    1. Daniel,
      ich habe Download Statistiken schon oft angezeigt, aber auf die Idee diese nicht direkt in der DB abzufragen und anstelle dessen diese in einem freien Zähler zu phantasieren, würde ich nicht kommen. Und das hat sicherlich nichts mit mangelndem Einfallsreichtum zu tun.

      Aber das kann jeder sehen wie er will.

      Trotzdem schönen Dank für deinen Kommentar.

      HP

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.