рдЬрдЯрд┐рд▓ AJAX рд╕рд╛рдЗрдЯреЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП 6 рдпреБрдХреНрддрд┐рдпрд╛рдБ

рдПрдЬреЗрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдХрдИ рдлрд╛рдпрджреЗ рд╣рдо рд╕рднреА рдЬрд╛рдирддреЗ рд╣реИрдВ: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдП рдкреГрд╖реНрда рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдХреНрд░рд┐рдпрд╛рдПрдВ рдХреА рдЬрд╛рддреА рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЧрддрд┐рд╢реАрд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрднрд╡ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╡рд┐рдЪрд╛рд░ рд╕рд░рд▓ рдкреНрд░рддреАрдд рд╣реЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдХ рдЬрдЯрд┐рд▓ AJAX рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдирд╛ рдХрд╛рдлреА рдХрдард┐рди рд╣реИред рдореИрдВрдиреЗ рдЕрдкрдирд╛ рдмреНрд▓реЙрдЧ AJAX рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрдирд╛рдпрд╛, рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ рд╕реБрдЭрд╛рд╡ рд╣реИрдВ рдФрд░ рдореИрдВ рдЕрдкрдирд╛ рдЕрдиреБрднрд╡ рдЖрдкрдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдореИрдВ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдореЗрдВ рдЖрдкрдХреА рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реВрдБ!

рдИрд╡реЗрдВрдЯ рдкреНрд░рддрд┐рдирд┐рдзрд┐рдордВрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ


AJAX рд╕рд╛рдЗрдЯреЛрдВ рдХреА рдореБрдЦреНрдп рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛ рдЗрд╡реЗрдВрдЯ рдбреЗрд▓рд┐рдЧреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣реИред рдЖрдкрдХреЛ рдпрд╣ рдирд╣реАрдВ рд╕рдордЭрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдкреГрд╖реНрда рдкрд░ рдПрдХ рддрддреНрд╡ рдореМрдЬреВрдж рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ AJAX рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбрд╛рд▓рд╛ рдЧрдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ), рдЖрдкрдХреЛ рдХрднреА рднреА рдЗрд╡реЗрдВрдЯ рд╢реНрд░реЛрддрд╛рдУрдВ (рддрддреНрд╡реЛрдВ) рдХреЛ рддрддреНрд╡реЛрдВ (document.body рдХреЛ рдЫреЛрдбрд╝рдХрд░) рдХреЛ рд╕реАрдзреЗ рдЕрд╕рд╛рдЗрди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рдЗрд╡реЗрдВрдЯ рдбреЗрд▓рд┐рдЧреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред рдпрд╣рд╛рдБ jQuery рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рдирд┐рдзрд┐рдордВрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рд╣реИ:

// Add event listener to the body because it is a constant jQuery("body").on("click", "a", function(event) { event.preventDefault(); // Trigger the XHR to load the page content // ... // Update the History with pushState // ... // Other tasks // ... }); 

рдЕрдкрдиреА рд╕рд╛рдЗрдЯ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди, рдореИрдВрдиреЗ рдЕрдкрдирд╛ рдХреЛрдб рдРрд╕рд╛ рд▓рд┐рдЦрд╛ рдерд╛ рдЬреИрд╕реЗ рдХрд┐ рдХреЛрдИ рддрддреНрд╡ <body> рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдореБрдЭреЗ рдкреЗрдЬрдпрд▓ AJAX рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ 30 рдорд┐рдирдЯ рд╕реЗ рднреА рдХрдо рд╕рдордп рд▓рдЧрд╛ред рдЗрд╡реЗрдВрдЯ рдбреЗрд▓рд┐рдЧреЗрд╢рди AJAX рдкреЗрдЬ рд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдмрдирд╛рддрд╛ рд╣реИред

рд╕рд┐рдЧреНрдирд▓ рдЗрд╡реЗрдВрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдкрдм / рд╕рдм рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ

рдкреНрд░рддрд┐ рд╕реЗред - рд╕рд┐рдЧреНрдирд▓ рдЗрд╡реЗрдВрдЯреНрд╕, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред
рдкреНрд░рдХрд╛рд╢рди рдФрд░ рд╕рджрд╕реНрдпрддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╕реЗ рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рдХреЛ рдЕрдзрд┐рдХ рд╢рдХреНрддрд┐ рдорд┐рд▓рддреА рд╣реИред рдпрджрд┐ рдЖрдк рдкрдм / рдЙрдк рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рд░реЗрдбрд┐рдпреЛ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: рд░реЗрдбрд┐рдпреЛ рдкреНрд░рд╕рд╛рд░рдг ( рдкреНрд░рдХрд╛рд╢рд┐рдд ) рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рдХреМрди рдЗрд╕реЗ рд╕реБрди рд░рд╣рд╛ рд╣реИред рд╢реНрд░реЛрддрд╛ ( рд╕рджрд╕реНрдпрддрд╛ ) рд╕реБрди рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рд╕реНрдЯреЗрд╢рди рд╕реЗ рдХреЛрдИ рд╕рдВрдмрдВрдз рдирд╣реАрдВ рд╣реИред

рдореИрдВ рдЕрдкрдиреА рд╕рд╛рдЗрдЯ рд╕реЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рдКрдВрдЧрд╛ рдХрд┐ рдЖрдк рдкрдм / рдЙрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдФрд░ рдХреИрд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХрд┐рд╕реА рднреА рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рд▓реЛрдХрдкреНрд░рд┐рдп рд╕рд╛рдорд╛рдЬрд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛ рдкрд╣рд▓рд╛, рдбрд╛рдЙрдирд▓реЛрдб рд╡рд┐рдЬреЗрдЯреНрд╕ рдЪрд╛рд╣рд┐рдП рдФрд░ рджреВрд╕рд░рд╛, рд░реЗрдЯрд┐рдВрдЧ рд╡рд┐рдЬреЗрдЯ рджрд┐рдЦрд╛рдПрдВ рддрд╛рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд▓реЗрдЦ рдХреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░ рд╕рдХреЗрдВред рдПрдХ рдЕрдзрд┐рдХ рд╕реНрдереИрддрд┐рдХ рд╕рд╛рдЗрдЯ рдореЗрдВ, рдЖрдк рдмрд╕ рдЗрди рд╡рд┐рдЬреЗрдЯреНрд╕ рдХреЛ рдбреЛрдордХреЙрдиреНрдЯрд▓реЗрдВрдЯреЗрдб рдореЗрдВ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдЪрд▓рд╛рдПрдВрдЧреЗ ред рдПрдХ рдЬрдЯрд┐рд▓ AJAX рд╕рд╛рдЗрдЯ рдкрд░, рдЖрдкрдХреЛ рдХрдИ рдмрд╛рд░ рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдЗрди рд╡рд┐рдЬреЗрдЯ рдХреЛ рдкреБрдирдГ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреГрд╖реНрда рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреЗрдд рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

 // In the method where we do the AJAX request for new page content.... jQuery.ajax({ url: event.target.href }).done(function(data) { // Place the content in the page // ... // Send a pub/sub signal that the page is ready so that widgets can be created publish("/page/loaded", data); // Arguments are the channel name and data }); // ... Elsewhere, where the we set up the social widgets.... subscribe("/page/loaded", function(data) { // Set up the widgets! createSocialWidgets(data); // Fade in the widgets // ... }); // ... Elsewhere, where the we set up the rating widgets.... subscribe("/page/loaded", function(data) { // Set up the widgets! createStarRatingWidget(data); // Fade in the widget // ... }); 

рдкрдм / рдЙрдк рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдЪреНрдЫреА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЙрдбреНрдпреВрд▓ AJAX рдХреЗ рд╕рд╛рде рднрд╛рдЧреЛрдВ рд╕реЗ рдЕрд▓рдЧ рд╣реИрдВ рдФрд░ рд╣рдореЗрдВ рднрд╛рд░реА рдХреЙрд▓рдмреИрдХ рд╕реЗ рдирд╣реАрдВ рдирд┐рдкрдЯрдирд╛ рд╣реИред publish рдХрд░рдиреЗ рдХреЗ publish рдПрдХ рдХреЙрд▓ рдФрд░ рд╣рдо рдХрд┐рд╕реА рднреА рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЗрд╕ рдШрдЯрдирд╛ рдХреА subscribe рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ!

рдПрдХрд▓ рдкреБрд╢рд╕реНрдЯреИрдЯ рдкреНрд░рдмрдВрдзрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ


рдЬрдЯрд┐рд▓ AJAX рд╕рд╛рдЗрдЯреЗрдВ рдХреЗрд╡рд▓ рдирдИ рд╕рд╛рдордЧреНрд░реА рдЕрдкрд▓реЛрдб рдирд╣реАрдВ рдХрд░рддреА рд╣реИрдВ, рд╡реЗ HTML5 рдЗрддрд┐рд╣рд╛рд╕ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ URL рднреА рдмрджрд▓рддреА рд╣реИрдВред
Pjax рдЗрддрд┐рд╣рд╛рд╕ рдХреЗ рд▓рд┐рдП рд▓реЛрдХрдкреНрд░рд┐рдп jQuery рдкреНрд▓рдЧрдЗрдиред

AJAX рдкреЗрдЬ рдбрд╛рдЙрдирд▓реЛрдб рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд┐рдВрдЧ рдЗрддрд┐рд╣рд╛рд╕ рдХреЛ рд╕рд┐рдВрдХ рдореЗрдВ рд░рдЦрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рддрд╛рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреЛрд╕реНрддреЛрдВ рдХреЗ рд╕рд╛рде рд╡рд░реНрддрдорд╛рди рдкреГрд╖реНрда рдХреЗ URL рдХреЛ рдЕрдкрдбреЗрдЯ, рдмреБрдХрдорд╛рд░реНрдХ рдпрд╛ рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХреЗрдВред рдпрд╣ рднреА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдЧрд╛ рдХрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдмрдЯрди рдЖрдЧреЗ рдФрд░ рдкреАрдЫреЗ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░реЗрдВ!

рд╕реНрдерд╛рдпреА рд╕реНрдерд╛рди рдкрд░ рд╕реВрдЪрдирд╛рдПрдВ рдкреЛрд╕реНрдЯ рдХрд░реЗрдВ


рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╕реНрдпрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ, рд╡реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд▓рд╛рдЗрди рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рд╕реНрдерд┐рддрд┐ рдирд╣реАрдВ рджреЗрдЦрддреЗ рд╣реИрдВ, рдЗрд╕реЗ рдкреГрд╖реНрда рдкрд░ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реНрдерд╛рди рдкрд░ рдПрдХ рдЕрдзрд┐рд╕реВрдЪрдирд╛ (рд╕реНрдкрд┐рдирд░) рд░рдЦрдХрд░ рд░реЛрдХрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣рдореЗрд╢рд╛ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХрдм рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдЬрдм рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рд▓реЛрдб рдФрд░ рдкреНрд░рддрд┐рдкрд╛рджрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ!

URL рджреНрд╡рд╛рд░рд╛ рдХреИрд╢ рдХреНрд╡реЗрд░реА рдкрд░рд┐рдгрд╛рдо


рд╡реЗрдм рдХреЗ рд╕рд╛рде, рдЖрдк рдЕрдкрдиреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕реЗ рдЕрдзрд┐рдХ рдЕрдиреБрд░реЛрдз рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдФрд░ рдЬрдм рдЖрдк рдкреГрд╖реНрда рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕рдЪ рд╣реИред AJAX рд╕рд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП рдХреИрд╢рд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдмрдирд╛рдирд╛ (рдЖрдорддреМрд░ рдкрд░) рдЖрдкрдХреЗ рд╡рд┐рдЪрд╛рд░ рд╕реЗ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ:

 var cache = {}; // ... // ... within the AJAX callback cache[url] = data; // ... // ... within the click callback that would set forth a request if(cache[url]) { // Explicitly call the callback, passing it the cached page data return successCallback(cache[url]); } else { // ... do all of the AJAX request and callback stuff } 

рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрдИ рдмрд╛рд░ рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЗрд╕ рдХреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдЯрди рдХреЛ рдЖрдЧреЗ рдФрд░ рдкреАрдЫреЗ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реИ рддреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЖрдкрдХрд╛ рд╕рд░реНрд╡рд░ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рдХреИрд╢рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЖрднрд╛рд░реА рд╣реЛрдВрдЧреЗ!

рдЬрдм AJAX рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИ


рд╣рд░ рдкреЗрдЬ рдХреЛ AJAX рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдпрд╣ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ AJAX рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рд╣реЛред рдХрдИ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдлреЙрд░реНрдо рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдХреИрд╢реНрдб рдпрд╛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдРрд╕реЗ рдкрд░рд┐рджреГрд╢реНрдп рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рдЖрдкрдХрд╛ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪрд╛ AJAX рдХрд╛рд░реНрдпрднрд╛рд░ рд╕реЗ рдЧреНрд░рд╕реНрдд рд╣реЛрдЧрд╛ред рдпрджрд┐ рдЖрдк рдЙрди URL рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ AJAX рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓реЛрдб рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рддреЛ рдЖрдк jQuery рдЪрдпрдирдХрд░реНрддрд╛ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ:

 jQuery("body").on("click", "a:not(href$='/some/page')", function(event) { }); 

рдЖрдк рдпреВрдЖрд░рдПрд▓ рдХреЛ рд╣реЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрд▓рдмреИрдХ рдореЗрдВ рдЕрдзрд┐рдХ рддрд░реНрдХ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдкрд░ URL рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдк preventDefault() рдХреЙрд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкреГрд╖реНрда рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд▓реЛрдб рдХрд░рдиреЗ рджреЗрдВред

рдЬрдм рдЖрдк рд▓рдЪреАрд▓реЗ рдХреЛрдб рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ AJAX рд╡реЗрдмрд╕рд╛рдЗрдЯ рдмрдирд╛рдирд╛ рдЖрдкрдХреЗ рд╡рд┐рдЪрд╛рд░ рд╕реЗ рдЖрд╕рд╛рди рд╣реЛрддрд╛ рд╣реИред рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдЗрд╕ рдкреЛрд╕реНрдЯ рд╕реЗ рдпреБрдХреНрддрд┐рдпрд╛рдВ рдФрд░ 80% рдкрд╣рд▓реЗ рд╣реА рд╣реЛ рдЪреБрдХреА рд╣реИрдВред рдмреЗрд╢рдХ, рдХреБрдЫ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдЖрдкрдХреА рд╕рд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реЛрдВрдЧреА, рд▓реЗрдХрд┐рди рд╡реЗ рд╕рдВрдкреВрд░реНрдг рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдорд╣рддреНрд╡рд╣реАрди рд╣реЛрдВрдЧреАред рд╣реИрдкреНрдкреА AJAXing!

Source: https://habr.com/ru/post/In198330/


All Articles