рд╕рднреА рдХреЛ рд╢реБрдн рджрд┐рдиред
рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдореИрдВрдиреЗ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдкреГрд╖реНрдарднреВрдорд┐ рдЕрджреНрдпрддрди рдХреЗ рдореБрджреНрджреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрд╛ рдФрд░ рдПрдХ рд╡рд┐рдЪрд╛рд░ рдореЗрд░реЗ рджрд┐рдорд╛рдЧ рдореЗрдВ рдЖрдпрд╛ред
рдХрд╛рд░реНрдп рдХрд╛ рд╕рд╛рд░ - рд╣рдо рд╕рдорд╛рдЪрд╛рд░ рд╕реВрдЪреА рдкреГрд╖реНрда рдкрд░ рд╣реИрдВред рдирдИ рдЦрдмрд░ рдЖрддреЗ рд╣реА рд╕реВрдЪреА рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред PHP рд╕рд░реНрд╡рд░ рднрд╛рд╖рд╛
рдЕрдЬрд╛рдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░рдВрддрд░ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреНрд▓рд╛рд╕рд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
1) рдЧреНрд░рд╛рд╣рдХ рд╕рд░реНрд╡рд░ рдкрд░ рдПрдХ рдЕрдЬрд╛рдХреНрд╕ рдЕрдиреБрд░реЛрдз рднреЗрдЬрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрддреЗ рдкрд░ - / ajax / get_upades рдФрд░ рд╕рдордп = xxxxxx
2) PHP рдЙрд╕ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдХреА рддрд▓рд╛рд╢ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╕рдордп рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдирдП рд╣реИрдВ
3) рдЕрдЧрд░ рд╡рд╣рд╛рдБ рд╣реИ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдЪреБрдирддрд╛ рд╣реИ рдФрд░ рд▓реМрдЯрддрд╛ рд╣реИ
4) рдЕрдЧрд░ рдХреБрдЫ рднреА рд░рд┐рдЯрд░реНрди рдирд╣реАрдВ рд╣реИ
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдореЗрдВ рд▓рдЧрд╛рддрд╛рд░ рдкреАрдПрдЪрдкреА рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рд╕рд╡рд╛рд▓ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпрд╛ рдХреЛрдИ рдирдпрд╛ рдбреЗрдЯрд╛ рд╣реИ?
рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдкрд╕рдВрдж рдирд╣реАрдВ рдЖрдпрд╛ред
рдореБрдЭреЗ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЦреБрд▓реЗ рдХрдиреЗрдХреНрд╢рдиреЛрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдФрд░ рдкреНрд░рддрд┐рдзрд╛рд░рдг рдХреА рд╡рд┐рднрд┐рдиреНрди рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХреЗ рдХрд╛рд░рдг рд▓рдВрдмреЗ рдорддрджрд╛рди рдХреЗ рд╡рд┐рдХрд▓реНрдк рдкрд╕рдВрдж рдирд╣реАрдВ рдереЗ
рдлрд┐рд░ рдореИрдВрдиреЗ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рдХреНрдпреЛрдВ рди рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ PHP рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░рддреЗ рд╣реБрдП рд╕рд░реНрд╡рд░ рдХреЛ рдирдП рдбреЗрдЯрд╛ рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рдиреЗ рдХрд╛ рдХрд╛рдо рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджреВрдВ
рд╡рд┐рдЪрд╛рд░ рдХрд╛ рд╕рд╛рд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ
рдХреНрд▓рд╛рдЗрдВрдЯ рд▓рдЧрд╛рддрд╛рд░ рдПрдХ рдЦрд╛рд▓реА рдорд╛рд░реНрдХрд░ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрд┐рдВрдЧ рдХрд░рддрд╛ рд╣реИред рдЗрд╕реЗ рдХреЙрд▓ рдХрд░реЗрдВ / рдкрд┐рдВрдЧ / new_news
рдЬрдм рдлрд╝рд╛рдЗрд▓ рднреЗрдЬреА рдЬрд╛рддреА рд╣реИ, рддреЛ рд╕рд░реНрд╡рд░ рдПрдХ рд╣реЗрдбрд░ рднреЗрдЬрддрд╛ рд╣реИ - "10aa0f-7-4b877e2d4941c" рдлреЙрд░реНрдо рдХрд╛ ETagред рдпрд╣ рдХреИрд╢рд┐рдВрдЧ рддрдВрддреНрд░ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╢реАрд░реНрд╖рдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдИрдЯреИрдЧ рдХреА рдЧрдгрдирд╛ рдЗрдиреЛрдб, рд╕рд╛рдЗрдЬ рдФрд░ рдорд╛рдЗрдо рдлрд╛рдЗрд▓ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреА рдЬрд╛рддреА рд╣реИред рдпрд╛рдиреА рдмрджрд▓рддреЗ рд╕рдордп (рдлрд╝рд╛рдЗрд▓ рд╕рдВрд╢реЛрдзрди рд╕рдордп) рд╕рд░реНрд╡рд░ рдПрдХ рдФрд░ ETag рднреЗрдЬреЗрдЧрд╛ред
рдирдИ рд╕рдорд╛рдЪрд╛рд░ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рддреЗ рд╕рдордп, рд╣рдореЗрдВ рдорд╛рдЗрдо рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрдкрд░реНрд╢ (), рд▓реЗрдХрд┐рди рд░рд┐рдХреЙрд░реНрдб рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдФрд░ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЯреНрд░рд┐рдЧрд░ рдмрдирд╛рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ
рдЖрдЧреЗ, рд╣рдо рдПрдХ рдЫреЛрдЯрд╛ рд╡рд░реНрдЧ рд▓рд┐рдЦрддреЗ рд╣реИрдВред рдЪрд▓реЛ рдЗрд╕реЗ рдЕрдкрдбреЗрдЯрд░ рдХрд╣рддреЗ рд╣реИрдВ
var Updater = function(){ this.params = { period: 3000, url: '', onModified: function(data,x,modified){}, bgPause: false }; this.interval = null; this.ETag = ''; this.lastModified = ''; this.init = function(params){ var me = this; this.params = $.extend(this.params, params); if(this.params.bgPause){ $(window).blur(function(){ me.pause() }); $(window).focus(function(){ me.resume() }); } }; this.start = function(){ var me = this; this.interval = setInterval(function(){ me.doUpdate() }, this.params.period); }; this.doUpdate = function(){ var me = this; $.ajax(this.params.url, { success: function(data,status,x){ if(me.ETag != x.getResponseHeader('ETag')){ me.params.onModified(data,x,me.lastModified); me.lastModified = x.getResponseHeader('Last-Modified'); } me.ETag = x.getResponseHeader('ETag'); }, beforeSend: function(x){ if(me.ETag != '') { x.setRequestHeader('If-None-Match', me.ETag); } }, cache: false }); }; this.pause = function(){ clearInterval(this.interval); this.interval = null; }; this.resume = function(){ if(this.interval != null) return; this.start(); }; };
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ рд▓реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ URL рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рднреЗрдЬрддреА рд╣реИ, рдЬрдм Etag рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд╛ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ, onModified рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдХрд╛рд░реНрдп рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рднреЗрдЬрдирд╛ рд╣реИред
рдХрднреА-рдХрднреА рдкрд┐рдВрдЧрдб рдлрд╝рд╛рдЗрд▓ рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рдж рдЕрдкрд╛рдЪреЗ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдкреБрд░рд╛рдиреЗ рд▓рд╛рд╕реНрдЯ-рдореЙрдбрд┐рдлрд╛рдЗрдб рдФрд░ рдИрдЯреИрдЧ рджреЗрдирд╛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реИред рдЕрдЬрд╛рдХреНрд╕ рдЕрдиреБрд░реЛрдз рдореЗрдВ рдХреИрд╢ рдЭреВрдареА рдЬреЛрдбрд╝рдирд╛ рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИ
рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рд╕рд░реНрд╡рд░ рдХреЛ рдкрд┐рдВрдЧ рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрддреЗ рд╣реИрдВ рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣рдорд╛рд░реЗ рдкреЗрдЬ рдХреЛ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рд╣реИ
if(this.params.bgPause){ $(window).blur(function(){ me.pause() }); $(window).focus(function(){ me.resume() }); }
рдпрд╣рд╛рдБ рдРрд╕рд╛ рд╡рд┐рдЪрд╛рд░ рдорди рдореЗрдВ рдЖрдпрд╛ред рдореИрдВ рдЖрдкрдХреА рдЖрд▓реЛрдЪрдирд╛, рд╡рд┐рдЪрд╛рд░реЛрдВ, рд╕реБрдЭрд╛рд╡реЛрдВ рдХреЛ рд╕реБрдиреВрдВрдЧрд╛ред рдЖрдк рд╕рднреА рдХреЛ рдзрдиреНрдпрд╡рд╛рдж
рдпреБрдкреАрдбреАред рдЕрдЬрд╛рдХреНрд╕ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛрдбрд╝реЗрдВ