Добавил еще ведущие нули к миллисекундам, если кому-то еще когда-то этот код понадобится
log = function (text, color, define){ var id, time, thread, logHtml, textLog; define = (typeof define == 'string') ? define.split(/[\s,.|:;]+/g) : define; if(typeof define === 'object' && define !== null){ if(Array.isArray(define)){ id = define.indexOf('id') > -1; time = define.indexOf('time') > -1; thread = define.indexOf('thread') > -1; } else{ id = define.id == true; time = define.time == true; thread = define.thread == true; } } else id = time = thread = true; id = id ? '<a href="action://action' + ScriptWorker.GetCurrentAction() + '" style="color:gray;">[' + ScriptWorker.GetCurrentAction() + ']</a>' : ''; time = time ? ' ' + getTime() : ''; thread = thread ? ' Поток №' + thread_number() : ''; logHtml = (id || time || thread) ? id + '<span style="color: white">' + time + thread + ' : </span>' : ''; logHtml += '<span style="color:' + (color ? color : 'white') + '">' + text + '</span>'; textLog = '[' + ScriptWorker.GetCurrentAction() + ']' + time + thread + ' : ' + text function getTime(){ var checkTime = function(i){ return (i < 10) ? "0" + i : i; }; var checkMilliSeconds = function(ms){ if (ms < 10) { return "00" + ms; } else if (ms < 100) { return "0" + ms; } else { return ms; } }; var d = new Date(); var hh = checkTime(d.getHours()); var mm = checkTime(d.getMinutes()); var ss = checkTime(d.getSeconds()); var ms = checkMilliSeconds(d.getMilliseconds()); return '[' + hh + ':' + mm + ':' + ss + '.' + ms + ']'; }; Logger.WriteHtml(logHtml, textLog); }Как оптимизировать работу скрипта в условиях тормозов сайта, к которому обращаюсь.
-
Пишу скрипт, основная задача которого работать в условиях зависающего сайта к которому обращаюсь, так как именно в нужный момент на него возростает нагрузка сильно.
На этапе тестирования пока все работает отлично, все функции сделал, но в тот самый момент Х когда он нужен, возникают каждый раз новые стопы...
У меня уже на каждом шаге "загрузка URL" стоит "ждать полной загрузки страницы", на каждом шаге проверка на наличие ошибки загрузки(если ошибка, повторяем шаг еще раз). И все равно на следующем шаге скрипт ругается что не видит нужного элемента, потому что страница не загружена(хотя если он прошел последнюю проверку, значит ошибки в загрузке страницы не было).И ладно на шаге где сам грузил страницу, а что мне делать на шаге где кликнул на элемент, и жду ответа от страницы на "onclick"(тут пункт "ждать полной загрузки страницы" не пойдет же вроде) и меня перекинет на новый адрес, которого я заранее не знаю.
В живую у меня все это работает просто - страница не загрузилась, жмякаю по "повторить" до посинения пока не увижу то что мне нужно. Как мне грамотнее научить скрипт обрабатывать все эти зависания, и максимально увеличить его живучесть, т.е. что б он просто не отваливался?
-
@hamula post/get или над**ачивать скрипт до посинения. каждый стоп оборачивать в проверку и находить способ обхода. Ждать полной загрузки это очень неоднозначная проверка)) Сервер может ведь не все отдать и сказать все. А скрипт ищет алемент какой.
-
@sparta4wer нет, не старенький - просто во времмя Х на него ломиться очень большое количество народу в борьбе за десяток появившихся мест. И моих двух рук уже недостаточно, хотя бы 10-20 потоков иметь для этого же... С расчетом, что хотя бы часть пробьется.
-
@hamula said in Как оптимизировать работу скрипта в условиях тормозов сайта, к которому обращаюсь.:
может подскажете, как языком БАС обновить незагрузившуюся страницу, адрес которой я не знаю... т.е. аналог кнопочти рефреш в браузере.
Действие Яваскрипт
location.reload() -
@hamula Для начала погуглите прежде чем писать свои вопросы, на форуме есть ответы на эти вопросы
https://community.bablosoft.com/topic/3445/обновление-страницы -
@hamula Если вы работаете в браузере, то наверное сначала надо от ошибок и if если нет то снова. как подсказал @uraabk. Экшен загрузку оберните в игнорировать ошибки Или например можно [[WAS_ERROR]] и обернуть загрузку в игнор ошибок. проверка по error если была, а действие игнорить ошибки не убирает ошибки, ошибка загрузки останется, просто ему будет пофиг.
-
@allive Я кстати когда этих if -оф тьма и кодить напрямую лень. Кубиками if быстро так заберешся=) ставлю обратную проверку. ![[чего там exist или matches]] воскл знак сразу басу скажет что проверяем по нет. Т.е. если нет то лезем в то что упаковано в этой функции