2016-08-04 6 views
1

Привет, я хотел бы спросить, есть ли я в правильном направлении. Используя setInterval для обновления записей в базе данных и для добавления новых записей в базу данных. мой вопрос для этого - это не вызовет проблемы с производительностью?using setInterval in socket.emit

setInterval(function() { 

     socket.emit('drawmarker', {devid: thearray, logid: logid}); 

}, 1000); 

setInterval(function() { 

    socket.emit('displayupdate', {devid: thearray, logid: logid}); 

}, 1000); 

setInterval(function() { 

    socket.emit('getmessages', {logid: logid}); 

}, 1000); 

setInterval(function() { 

    socket.emit('requestconvert'); 

}, 3000); 
+0

Какая проблема с производительностью? – zerkms

+0

@zkerms, например, ниже на моем setinterval У меня есть события jquery, которые будут нажимать на элемент таблицы. мой вопрос для этого, не изменит ли setInterval, если я нажмю строки таблицы? или событие click вызывает запуск даже моего setInterval? – jemz

+0

В коде не осталось времени. Но есть более широкая проблема: вы делаете предположения о производительности вместо измерения. Оптимизация производительности должна быть всегда ВСЕГДА ** должна предшествовать надежное профилирование. И вы оптимизируете ** ТОЛЬКО ПОСЛЕ **, у вас «с научной точки зрения» доказано, что вы оптимизируете «правильную» часть. – zerkms

ответ

0

Почему бы не поставить их все три за один интервал? Вы также можете добавить простой счетчик и поместить их все в том же интервале 1000мса и просто отправлять только «requestconvert» на каждом 3000ms

setInterval(function() { 

socket.emit('drawmarker', {devid: thearray, logid: logid}); 

socket.emit('displayupdate', {devid: thearray, logid: logid}); 

socket.emit('getmessages', {logid: logid}); 

}, 1000); 

setInterval(function() { 

socket.emit('requestconvert'); 

}, 3000); 

Edit: Ваших опасения по поводу проблем с производительностью, было бы в высшей степени зависеть от того, они на самом деле делают.