COVID2019 и это вот все. Друзья, вся эта история начинает плохо пахнет. Мойте руки, не ходите в люди. Отложите все плановые покупки и положите в носок заначку. Заприте ваших родителей, бабушек-дедушек на даче. Лучше перебдеть чем недобдеть. Берегите себя!

Лайфхаки от BuslikDrev


BuslikDrev

Recommended Posts

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

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

 

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

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

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

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

  • 7 months later...

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 months later...

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" });
						}
					}
				}
			});
		}
	}
}

 

 

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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

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

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

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

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

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