Показать сообщение отдельно
  #8 (permalink)  
Старый 21.01.2020, 13:23
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Сообщение от laimas
Чтобы обрабатывать запросы с такой частотой нужно держать соединение открытым, чего для вас ВК делать не станет.
Так я у вас и спросил, «почему нельзя только один раз спросить время у ВК, и записать его в константу и уже работать с ним?» И даже привёл пример, какие ещё могут быть сомнения? Или что именно вам не понятно в приведённом коде?

whitenickkirov, вот ещё пример...
var script = document.createElement("script");
script.src = "https://api.vk.com/method/utils.getServerTime?&access_token=bca63fbbbca63fbbbca63fbbfbbccafe57bbca6bca63fbbe1d2a790c16613abe7a292dc&v=5.52&callback=main";
document.head.appendChild(script);

function main({ response: time }) {
	const startServerTime = time;

	for (const [time, task] of Object.entries(tasks)) {
		const timeout = Number(time) - startServerTime;
		if(timeout < 0) continue;
		setTimeout(task, 1000 * timeout, Number(time));
	}
}

var tasks = {
	[1579604333 + 0.530]: async currentServerTime => {
		document.querySelector(`
			#content > div > div.im-page.js-im-page.im-page_classic.im-page_history-show
			> div.im-page--history.page_block._im_page_history > div.im-page-history-w
			> div.im-page--chat-input._im_chat_input_w
			> div.im-chat-input.clear_fix.im-chat-input_classic._im_chat_input_parent
			> div.im-chat-input--textarea.fl_l._im_text_input._emoji_field_wrap
			> div.im-chat-input--txt-wrap._im_text_wrap > button
		`).click();
	},
	
	[1579604333]: async currentServerTime => {
		// В этом объекте можно описать одну или несколько задач,
		// которые выполняются один раз по достижении указанного времени
	},
};

Последний раз редактировалось Malleys, 21.01.2020 в 14:00.
Ответить с цитированием