Лайфхаки от BuslikDrev


BuslikDrev
 Поделиться

Рекомендуемые сообщения

6 часов назад, BuslikDrev сказал:

2.3.0.2.6 ещё не готово - нужно тестировать.

 

Сам факт появления!

Заметил в админке ваши дополнения уже за это респект.

Администрация устранилась от сборки я так понимаю?

Ссылка на комментарий
Поделиться на других сайтах

4 часа назад, almir сказал:

Администрация устранилась от сборки я так понимаю?

Нет, оказывается хотят выпуск.

Ссылка на комментарий
Поделиться на других сайтах

  • 7 месяцев спустя...

30/ Решил я скопировать все стили и отправить на сервер, в ходе работы кода также понадобилось внести изменение в стиль "content" класса иконки.

Оказалось, что element.style.setProperty('content', '123') - не вносит моё значение. Позже обнаружил, что вносит только вида element.style.setProperty('content', 'url(123)')

В итоге такой фикс подготовки всех стилей перед отправкой на сервер:

Скрытый текст
<style>
body {
	content: 'blue';
}
</style>
<script>
window.addEventListener('load', function() {
	var element = document.styleSheets[0].cssRules[0].style;
	console.log(element.cssText);
	//element.removeProperty('content');          // working
	//element.setProperty('content', 'url(red)'); // working
	element.setProperty('content', 'red');        // does not work
	element.setProperty('color', 'red');          // working
	console.log(element.cssText);

	console.log(1 + ' ' + element.getPropertyValue('content'));
	/* fix */
	element.setProperty('content', 'url(fixredfix)');
	element.cssText = element.cssText.replace(/\burl\(\"fix(.[^\)]*?)fix\"\)/, '"$1"');
	/* fix */
	console.log(element.cssText);
	console.log(2 + ' ' + element.getPropertyValue('content'));
});
</script>

 

 

Ссылка на комментарий
Поделиться на других сайтах

  • 3 месяца спустя...

31/

Рекомендую писать js код с правилом строгой типизации:

"use strict";

"use asm";

Это научит вас писать оптимизированный код, а в случае "use asm" поддерживающие браузеры этого правила будут выполнять ваш код быстрее.

 

Также рекомендую ознакомиться с возможностями WebAssembly (wasm). Эта технология позволяет выполнять код C, C++, C#, Rust (нужно конвертировать через спец. программы в wasm), что выходит быстрее, если бы вы написали такой код на JavaScript. То есть полезно создать свой модуль wasm с функциями для выполнения каких-то вычислений (работа с изображениями и видео, кодирование и декодирование информации).

Онлайн конвертёр из Си в Wasm

Онлайн конвертёр из С++ в Wasm

 

32/ Универсальный анкор скролл

Скрытый текст
'use strict';
'use asm';

if (typeof document.documentElement.style['scroll-behavior'] !== 'undefined') {
	document.documentElement.style['scroll-behavior'] = 'none';
	window.addEventListener('load', function(e) {
		document.documentElement.style['scroll-behavior'] = 'smooth';
	});
} else {
	if (!('scrollIntoView' in window)) {
		(function() {
			var lastTime, vendors, x;
			lastTime = 0;
			vendors = ['ms', 'moz', 'webkit', 'o'];
			for (x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {
				window.requestAnimationFrame = window[vendors[x]+'RequestAnimationFrame'];
				window.cancelAnimationFrame = window[vendors[x]+'CancelAnimationFrame'] || window[vendors[x]+'CancelRequestAnimationFrame'];
			}

			if (!window.requestAnimationFrame) {
				window.requestAnimationFrame = function(callback, element) {
					var currTime = new Date().getTime();
					var timeToCall = Math.max(0, 16 - (currTime - lastTime));
					var id = window.setTimeout(function() {
						callback(currTime + timeToCall);
					}, timeToCall);
					lastTime = currTime + timeToCall;
					return id;
				};
			}

			if (!window.cancelAnimationFrame) {
				window.cancelAnimationFrame = function(id) {
					clearTimeout(id);
				};
			}
		}());

		var s, ss;
		s = document.createElement('script');
		s.async = true;
		s.type = 'text/javascript';
		s.src = 'http://iamdustan.com/smoothscroll/src/smoothscroll.js';
		ss = document.getElementsByTagName('head')[0];
		ss.parentNode.appendChild(s);
	}

	var element = document.querySelectorAll('a[href*="#"]');

	if (element) {
		var i, l, t, link;
		i = 0;
		l = element.length;

		for (i; i < l; i++) {
			element[i].addEventListener('click', function(e) {
				t = e.target;
				if (typeof t.hash === 'undefined') {
					t = t.parentNode;
				}

				if (window.location.pathname.replace(/^\//,'') == t.pathname.replace(/^\//,'') && window.location.hostname == t.hostname) {
					if (typeof t.hash !== 'undefined') {
						e.preventDefault();
						link = document.getElementById(t.hash.substring(t.hash.length - (t.hash.length-1)));
						if (link) {
						console.log(link);
							link.scrollIntoView({ behavior: "smooth" });
						}
					}
				}
			});
		}
	}
}

 

 

Ссылка на комментарий
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сейчас и зарегистрироваться позже. Если у вас есть учётная запись, войдите, чтобы публиковать под своей учётной записью.

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Показать вместо этого как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Нельзя вставлять изображения напрямую. Загрузите или вставьте изображения по URL.

 Поделиться

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу