Здравствуйте
поставил ксеон новый процессор вместо ай 5
8 потоков стало вроде бы
все стало шустрее но памяти 16 гб стало не хватать
расширил до 32
по скрипту из режима записи в режим запуска поменял с помощью другого спеца порядок функций
раньше в онстартапликейшен загружал куки и файл
теперь онстартапликейшен убрал и все что в ней было объявлено закинул в начало мейна
все стало пахать
но странно ведь утверждалось что те элементы которые не будут меняться лучше как раз в онстарталикейшен можно загружать и не париться
был однопоток но все равно глючило почему то в режиме запуска
убрал в мейн из онстарьапликейшен все запуск в однопотоке норм трудится
правда была еще проблема что ставил повторять скрипт
а он через 3-4 повторения заканчивался пришлось бегать ставить метки
в общем с басом основная проблема это обучение и примеры собранные и централизованно с грамотным содержанием оформлены
интерфейс тоже звиздец какой то
я долго не мог понять где пункт выпадающего контекстного меню на элементе а оказалось в итоге что контекстное меню надо было проматывать еще дальше вниз колесиком мыши чтобы там из 15 опций низ показался
звиздец же
но в целом хоть и безплатно но хочется обучения и красивости и доубства оформления
копии бас тоже сейчас запускаются пока 3 штуки норм пашут именно паралелльно:)независимо друг от друга
кстати если кому интересно была проблема с установкой 4 планов по 8 гигабайт на материнскую плату b85+ и не шло никак
2 норм а две другие не хотели мириться
решилось через очень долгое и случайное мозговое штурмирование методом тыка
надо было в биосе включить и отключить слоты памяти ибо даже после обнуления биоса путем вытаскивания батарейки где то информация закрепилась и слоты глючили
но после отключения включения все 4 слота стали пахать и память у меня теперь 32 гигабайта:) а я уж смирился с 16
так что есть польза от совместного решени язадач и резонанса
аурауспешайкая
Перенос функции с расширения в БАС
-
Как можно такую функцию заставить работать в бас, так, как она работает в расширении?
(() => {
setInterval(function () {
if (window.___grecaptcha_cfg === undefined) {return;}
if (___grecaptcha_cfg.clients === undefined) {return;}
for (let widgetId in ___grecaptcha_cfg.clients) {
let widget = ___grecaptcha_cfg.clients[widgetId];
if (isCaptchaWidgetRegistered("recaptcha", widget.id)) {continue;}
let widgetInfo = getRecaptchaWidgetInfo(widget);
registerCaptchaWidget(widgetInfo);
}
}, 3000);
let getRecaptchaWidgetInfo = function (widget) {
let info = {
captchaType: "recaptcha",
widgetId: widget.id,
version: "v2",
sitekey: null,
action: null,
s: null,
callback: null,
enterprise: grecaptcha.enterprise ? true : false,
containerId: null,
bindedButtonId: null,
};
let isBadge = false;
mainLoop: for (let k1 in widget) {
if (typeof widget[k1] !== "object") {continue;}
for (let k2 in widget[k1]) {
if (widget[k1][k2] && widget[k1][k2].classList && widget[k1][k2].classList.contains("grecaptcha-badge")) {
isBadge = true;
break mainLoop;
}
}
}
if (isBadge) {
info.version = "v3";
for (let k1 in widget) {
let obj = widget[k1];
if (typeof obj !== "object") {continue;}
for (let k2 in obj) {
if (typeof obj[k2] !== "string") {continue;}
if (obj[k2] == "fullscreen") info.version = "v2_invisible";
}
}
}
let n1;
for (let k in widget) {
if (widget[k] && widget[k].nodeType) {
if (widget[k].id) {
info.containerId = widget[k].id;
} else if (widget[k].dataset.sitekey) {
widget[k].id = "recaptcha-container-" + Date.now();
info.containerId = widget[k].id;
} else if (info.version == 'v2') {
if (!n1) {
n1 = widget[k];
continue;
}
if (widget[k].isSameNode(n1)) {
widget[k].id = "recaptcha-container-" + Date.now();
info.containerId = widget[k].id;
break;
}
}
}
}
for (let k1 in widget) {
let obj = widget[k1];
if (typeof obj !== "object") {continue;}
for (let k2 in obj) {
if (obj[k2] === null) {continue;}
if (typeof obj[k2] !== "object") {continue;}
if (obj[k2].sitekey === undefined) {continue;}
if (obj[k2].action === undefined) {continue;}
for (let k3 in obj[k2]) {
if (k3 === "sitekey") info.sitekey = obj[k2][k3];
if (k3 === "action") info.action = obj[k2][k3];
if (k3 === "s") info.s = obj[k2][k3];
if (k3 === "callback") info.callback = obj[k2][k3];
if (k3 === "bind" && obj[k2][k3]) {
if (typeof obj[k2][k3] === "string") {
info.bindedButtonId = obj[k2][k3];
} else {
let button = obj[k2][k3];
if (button.id === undefined) {
button.id = "recaptchaBindedElement" + widget.id;
}
info.bindedButtonId = button.id;
}
}
}
}
}
if (typeof info.callback === "function") {
let callbackKey = "reCaptchaWidgetCallback" + widget.id;
window[callbackKey] = info.callback;
info.callback = callbackKey;
}
return info;
};
})()