Leistungsmäßig würde ich eine span
Hölle empfehlen.
<span id="string"><span id="h">12</span><span class="h">h</span><span id="m">12</span><span class="m">m</span><span id="s">12</span><span class="s">s</span></span>
Eine Spanne für jede h
, m
und s
Buchstaben, damit Sie sie richtig stylen kann (können entweder gleich oder verschieden Styling für jede Anwendung).
Und ein weiterer Bereich für jede Nummer, so dass Sie die Referenzen zwischenspeichern können. In der Summe ist hier eine JS für eine sehr einfache Uhr Lokalzeit:
//cache number container element references
var h = document.getElementById('h'),
m = document.getElementById('m'),
s = document.getElementById('s'),
//IE feature detection
textProp = h.textContent !== undefined ? 'textContent' : 'innerText';
function tick() {
var date = new Date(),
hours = date.getHours(),
mins = date.getMinutes(),
secs = date.getSeconds();
h[textProp] = hours < 10 ? '0'+hours : hours;
m[textProp] = mins < 10 ? '0'+mins : mins;
s[textProp] = secs < 10 ? '0'+secs : secs;
}
tick();
setInterval(tick, 1000);
Fiddle
Dies zeigt die Grundidee der zwischengespeicherten Selektoren. Indem Sie die Elemente nicht neu erstellen, haben Sie auch einen guten Leistungsschub.
Obwohl einmal pro Sekunde ist nicht sehr schwer für etwas so einfach arbeiten (es sei denn, Sie haben Hunderte von Uhren in Ihrer Seite).
Denn so etwas gibt es nicht. Sie haben es wahrscheinlich in einem Blog gelesen, in dem es auf seine Implementierung hinweist - siehe http://css-tricks.com/a-call-for-nth-everything/ und scrollen Sie nach unten zu ":: nth-letter()/:: last -letter()/:: nth-last-letter() "- und ja, das geht mit JS einfach. –
@ FabrícioMatté, hatte ich ein Gefühl ... Könnten Sie vorschlagen, eine andere Möglichkeit, dies zu tun (in js ich nehme an) das wäre effizient genug, um jede Sekunde ausgeführt werden? – n0pe
Vielleicht etwas wie das http://codepen.io/FWeinb/pen/djuIx –