AJAX с использованием pushState ()

Я нашел замечательную статью, в которой объясняется, как использовать pushState с AJAX.
https://moz.com/blog/create-crawlable-link-friendly-ajax-websites-using-pushstate

Но я не могу понять, как организован файл «content.php». В комментариях часто задают этот вопрос, но никто не ответил на это. Это очень важно, потому что без «content.php» ничего не работает.

Может быть кто-нибудь знает пример «content.php»? Я буду признателен. Спасибо

-2

Решение

Код в ссылке, которую вы предоставили, делает простой запрос get в файл PHP с именем content.php, Затем PHP-файл возвращает JSON в качестве ответа.

То, что я собираюсь записать дальше, это простой пример того, как настроить content.php файл, это не рекомендуется, но для примера, вы можете сделать это

<? php

$contentId = $_GET['contnentid'];
doSomethingWith($contentid)

public function doSomethingWith($contentId)
{
//get content with id from db or somewhere
return json_encode(['Content' => 'Some content']);
}
0

Другие решения

content.php не имеет отношения к window.history.pushState() и всегда зависит от контекста.

Более длинный ответ:

Проверьте http://html5.gingerhost.com/

В этом случае, когда вы нажимаете «Сиэтл», то content.php возвращает:

{«title»: «Сиэтл — часть демонстрации для #ProSEO», «h1»: «Сиэтл», «article #articletext»: «

Сиэтл является самым северным крупным городом в смежных Соединенных Штатах, а также крупнейшим городом на Тихоокеанском северо-западе и в штате Вашингтон. Это крупный морской порт, расположенный на узком перешейке между Пьюджет-Саунд (рука Тихого океана) и озером Вашингтон, в 114 милях (183 км) к югу от границы между Канадой и Соединенными Штатами, и назван в честь Главного департамента \ «. Сиэтл \ «, из племен дувамиш и суквамиш. Сиэтл — центр столичной статистической зоны Сиэтл-Такома-Белвью — 15-й по величине мегаполис в США и крупнейший на северо-западе США.</ Р>

Сиэтл является административным центром округа Кинг и является крупным экономическим, культурным и образовательным центром в регионе. Перепись 2010 года показала, что в Сиэтле проживает 608 660 жителей в столичном регионе с населением около 3,4 миллиона человек. Порт Сиэтла, который также управляет международным аэропортом Сиэтл-Такома, является главными воротами для торговли с Азией и круизами на Аляску, и является 8-ым по величине портом в Соединенных Штатах с точки зрения вместимости контейнеров.</ Р>», «# образ»: «»}

Это затем используется JavaScript для заполнения соответствующей Div с этой информацией. Там нет общего правила именования (это может быть content.php или же content.aspx или вообще ничего)

В частности код в это: http://html5.gingerhost.com/

$(function() {
$('nav a').click(function(e) {
$("#loading").show();
href = $(this).attr("href");

loadContent(href);

// HISTORY.PUSHSTATE
history.pushState('', 'New URL: '+href, href);
e.preventDefault();});

// THIS EVENT MAKES SURE THAT THE BACK/FORWARD BUTTONS WORK AS WELL
window.onpopstate = function(event) {
$("#loading").show();
console.log("pathname: "+location.pathname);
loadContent(location.pathname);
};

});

function loadContent(url){
// USES JQUERY TO LOAD THE CONTENT
$.getJSON("content.php", {cid: url, format: 'json'}, function(json) {
// THIS LOOP PUTS ALL THE CONTENT INTO THE RIGHT PLACES
$.each(json, function(key, value){
$(key).html(value);
});
$("#loading").hide();
});

// THESE TWO LINES JUST MAKE SURE THAT THE NAV BAR REFLECTS THE CURRENT URL
$('li').removeClass('current');
$('a[href="'+url+'"]').parent().addClass('current');

}

Это можно получить, проверив источник кода, однако вы можете оказаться в законных пределах, если будете использовать их код для своего собственного сайта.

0

По вопросам рекламы [email protected]