рд╕реБрд░рдХреНрд╖рд╛ рддреНрд░реБрдЯрд┐: рдбреЛрдо рдЕрдкрд╡рд╛рдж 18 рдХреЛ рд╕рдлрд╛рд░реА (рдЖрдИрдУрдПрд╕ рдФрд░ рдУрдПрд╕рдПрдХреНрд╕) рджреНрд╡рд╛рд░рд╛ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕ рдХреНрд╖рдг рд╕реЗ pushState()
рдХреЛ 100 рдмрд╛рд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
https://forums.developer.apple.com/thread/36650
рдмреЗрд▓рд╛: https://jsfiddle.net/n3uxkyhr/5/
var TestRouter = Backbone.Router.extend( {
initialize: function() {
this.route("/test/:id", function( id ) { console.log("test" + id) });
}
} );
var router = new TestRouter();
Backbone.history.start({pushState: true});
try {
for(var i = 0; i < 200; i++ ) {
router.navigate("/test/"+i);
}
alert("passed, i = " + i);
} catch( e ) {
var msg = "failed on i " + i + " with error: " + e + "\nStack: " + e.stack;
console.error( e, msg );
alert(msg);
}
рдЗрд╕рдХреЗ рд╕рд╛рде рд╡рд┐рдлрд▓:
failed on i 100 with error: Error: SecurityError: DOM Exception 18
Stack: pushState@[native code]
navigate<strong i="14">@https</strong>://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.3.3/backbone.js:1823:69
navigate<strong i="15">@https</strong>://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.3.3/backbone.js:1522:32
global code<strong i="16">@https</strong>://fiddle.jshell.net/n3uxkyhr/6/show/:63:22"
global code тАФ show:68
рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдРрдкреНрдкрд▓ рдбреЗрд╡рд▓рдкрд░ рдлрд╝реЛрд░рдо рд▓рд┐рдВрдХ рдпрд╣ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╕рдлрд╛рд░реА рдХреЗ рд╕рд╛рде рд╣реИред рдЖрдк рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд░реАрдврд╝ рдХреА рд╣рдбреНрдбреА рд╕реЗ рдХреНрдпрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?
рдмреИрдХрдмреЛрди рдХреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдмрдЧ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдХреНрдпрд╛ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рд╣реИ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдк @zowers рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ? рдХреНрдпрд╛ рдпрд╣ рдмрдЧ рдХреЗрд╡рд▓ рддрднреА рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдиреЗрд╡рд┐рдЧреЗрдЯ рдХреЛ 100 рдмрд╛рд░ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╛ рдРрд╕рд╛ рддрдм рд╣реЛрдЧрд╛ рдЬрдм рдЗрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ 100 рдмрд╛рд░ рдХрд╣рд╛ рдЬрд╛рдП?
рдХрд╛рдордХрд╛рдЬ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХреЛ try/catch
рдореЗрдВ рд▓рдкреЗрдЯрдирд╛ рдкрдбрд╝рд╛
рд╕рдлрд╛рд░реА рдореЗрдВ 9.1 (рдЖрдЬ рддрдХ рдирд╡реАрдирддрдо рд╕реНрдерд┐рд░) - рдпрд╣ рдХреБрд▓ 100 рдЧреБрдирд╛ рд╣реИ
рд╕рдлрд╛рд░реА рдореЗрдВ 9.1.1 рдбреЗрд╡рд▓рдкрд░ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди - рдпрд╣ 30 рд╕реЗрдХрдВрдб рдореЗрдВ 100 рдмрд╛рд░ рд╣реИ
рдпрд╣ рдареАрдХ рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реЛрдЧрд╛?
рдХреНрдпрд╛ рдЖрдк рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЧреИрд░-рдХрд╛рд░реНрдпрд╢реАрд▓ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╣реЛрдирд╛ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИ?
рдореИрдВрдиреЗ рдЗрд╕реЗ рд╡рд╣рд╛рдВ рд░рдЦрд╛ рдХреНрдпреЛрдВрдХрд┐ рд╕рдлрд╛рд░реА рдмрдЧ рдкрдврд╝рдиреЗ рд╕реЗ рдореБрдЭреЗ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рдерд╛ред рдХреЛрд╢рд┐рд╢/рдкрдХрдбрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ 100рд╡реЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдмрд╛рдж рдорд╛рд░реНрдЧ рдирд╣реАрдВ рдмрджрд▓рдирд╛ рд╕реНрд╡реАрдХрд╛рд░реНрдп рдирд╣реАрдВ рд╣реИ IMO
рдХреЛрд╢рд┐рд╢/рдкрдХрдбрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ 100рд╡реЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдмрд╛рдж рдорд╛рд░реНрдЧ рдирд╣реАрдВ рдмрджрд▓рдирд╛ рд╕реНрд╡реАрдХрд╛рд░реНрдп рдирд╣реАрдВ рд╣реИ IMO
рдорд╛рдирд╛ред рдпрд╣ рдПрдХ рдореВрдХ рд╡рд┐рдлрд▓рддрд╛ рд╣реИ, рдЬреЛ рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реЗ рднреА рдмрджрддрд░ рд╣реИред
рддреНрд░реБрдЯрд┐ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╢рд╛рдпрдж рдиреЗрд╡рд┐рдЧреЗрдЯ рдХреЛ рд╣реИрд╢ рдореЗрдВ рд╡рд╛рдкрд╕ рдЖрдирд╛ рдЪрд╛рд╣рд┐рдП
рдЖрдЬ рд╕рдлрд╛рд░реА 9.1.1 рдлрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛
рд╕рдлрд╛рд░реА рд╕рдлрд╛рд░реА рдореЗрдВ 9.1.1 history.pushState()
рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ рдЕрдЧрд░ 30 рд╕реЗрдХрдВрдб рдореЗрдВ 100 рдмрд╛рд░ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдмрдВрдж рдХрд┐рдпрд╛ рд╣реБрдЖ? рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд▓реЛрдЧреЛрдВ рдХреЛ рдЬрд▓реНрдж рд╣реА рдЕрдкрдбреЗрдЯ рдорд┐рд▓реЗрдЧрд╛?
рдпрд╣ рд╕рдлрд╛рд░реА рдореЗрдВ рдПрдХ рдмрдЧ рд╣реИ рдЬрд┐рд╕рдХреЗ рдмрд┐рдирд╛ рд╣рдо рдмрд╣реБрдд рдХреБрдЫ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ 9.1 рдХреЛ рдХреЗрд╡рд▓ 2 рдорд╣реАрдиреЗ рд╣реБрдП рд╣реИрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИрдВ рдФрд░ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рд▓реЛрдЧреЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рджреЗ рд░рд╣реЗ рд╣реИрдВред