Маршрутизиране на страници в браузъра без презареждане
jComponent има собствен рутер за приложения от една страница. ROUTE(url, fn) регистрира маршрут: сегментите {name} се подават на fn като аргументи, по ред. REDIRECT(url) променя адреса с History API (без зареждане на страница) и изпълнява съвпадащия маршрут. Маршрутите се сравняват сегмент по сегмент: маршрут и URL трябва да имат еднакъв брой сегменти, а * съвпада с всяка стойност на своята позиция. NAV описва текущото местоположение: NAV.url е пътят, NAV.query разчетеният query string, а NAV.params аргументите на маршрута. NAV.back() и NAV.forward() се движат из историята, която jComponent поддържа.
За сървъра това си остава една страница, така че всеки URL под вашето приложение трябва да връща същия HTML (ROUTE('GET /*'), който изобразява скелета), иначе презареждане на /users/5/ би дало 404.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>jComponent</title>
<link rel="stylesheet" href="//cdn.componentator.com/spa.min@20.css" />
<script src="//cdn.componentator.com/spa.min@20.js"></script>
</head>
<body>
<h1 id="title"></h1>
<script>
ROUTE('/', function() {
$('#title').text('Home');
});
ROUTE('/users/{id}/', function(id) {
$('#title').text('User ' + id);
});
ROUTE('/files/*', function() {
$('#title').text('Files');
});
</script>
</body>
</html>Редактирайте примера и го изпълнете. Работи в изолирана рамка във вашия браузър; нищо не се изпраща към нашия сървър.
Преглед