Hiệu suất khôn ngoan, tôi khuyên bạn nên sử dụng địa chỉ span
.
<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>
Một khoảng thời gian cho mỗi h
, m
và s
chữ, do đó bạn có thể tạo kiểu cho họ đúng cách (có thể áp dụng một trong hai phong cách tương tự hoặc khác nhau cho mỗi).
Và một khoảng khác cho mỗi số để bạn có thể lưu vào bộ nhớ cache các tham chiếu. Tóm lại, đây là một JS cho một chiếc đồng hồ địa phương thời gian rất đơn giản:
//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
này minh họa ý tưởng cơ bản của bộ chọn cache. Bằng cách không tái tạo các yếu tố, bạn cũng có một tăng hiệu suất tốt.
Mặc dù, một lần thứ hai không phải là công việc rất nặng đối với một cái gì đó rất đơn giản (trừ khi bạn có hàng trăm đồng hồ trong trang của mình).
Nguồn
2013-04-14 00:37:27
Bởi vì một điều như vậy không tồn tại. Bạn có thể đã đọc nó từ một blog đề xuất triển khai của nó - xem http://css-tricks.com/a-call-for-nth-everything/ và cuộn xuống ":: nth-letter()/:: last -letter()/:: nth-last-letter() "- và có, bạn có thể dễ dàng đạt được điều này với JS. –
@ FabrícioMatté, tôi đã có một cảm giác ... Bạn có thể đề xuất một cách khác để làm điều này (trong js tôi giả định) sẽ đủ hiệu quả để chạy mỗi giây? – n0pe
Có thể một cái gì đó như thế này http://codepen.io/FWeinb/pen/djuIx –