do inscremental updates instead of full updates

This commit is contained in:
or-else
2019-02-04 12:46:17 +03:00
parent 004dec20d3
commit a534387593
3 changed files with 25 additions and 22 deletions
+20 -11
View File
@@ -2,23 +2,24 @@
// Make shortcut icon appear with a green dot + show unread count in title.
export function updateFavicon(count) {
var oldIcon = document.getElementById('shortcut-icon');
const oldIcon = document.getElementById('shortcut-icon');
const head = document.head || document.getElementsByTagName('head')[0];
const newIcon = document.createElement('link');
newIcon.type = 'image/png';
newIcon.id = 'shortcut-icon';
newIcon.rel = 'shortcut icon';
newIcon.href = 'img/logo32x32' + (count > 0 ? 'a' : '') + '.png';
if (oldIcon) {
var head = document.head || document.getElementsByTagName('head')[0];
var newIcon = document.createElement('link');
newIcon.type = 'image/png';
newIcon.id = 'shortcut-icon';
newIcon.rel = 'shortcut icon';
newIcon.href = 'img/logo32x32' + (count > 0 ? 'a' : '') + '.png';
head.removeChild(oldIcon);
head.appendChild(newIcon);
}
head.appendChild(newIcon);
document.title = (count > 0 ? '('+count+') ' : '') + 'Tinode';
}
// Create VCard which represents topic 'public' info
export function vcard(fn, imageDataUrl) {
var card = null;
const card = null;
if ((fn && fn.trim()) || imageDataUrl) {
card = {};
@@ -26,7 +27,7 @@ export function vcard(fn, imageDataUrl) {
card.fn = fn.trim();
}
if (imageDataUrl) {
var dataStart = imageDataUrl.indexOf(',');
const dataStart = imageDataUrl.indexOf(',');
card.photo = {
data: imageDataUrl.substring(dataStart+1),
type: 'jpg'
@@ -38,6 +39,14 @@ export function vcard(fn, imageDataUrl) {
// Deep-shallow compare two arrays: shallow compare each element.
export function arrayEqual(a, b) {
if (a === b) {
return true;
}
if (!Array.isArray(a) || !Array.isArray(b)) {
return false;
}
// Compare lengths first.
if (a.length != b.length) {
return false;
@@ -45,7 +54,7 @@ export function arrayEqual(a, b) {
// Order of elements is ignored.
a.sort();
b.sort();
for (var i = 0, l = a.length; i < l; i++) {
for (let i = 0, l = a.length; i < l; i++) {
if (a[i] !== b[i]) {
return false;
}