JavaScript — навигационный скрипт и шаблон

Обзор:

Я использую следующий шаблон страницы и скрипты для навигации. Я использую одну страницу, которая загружает меню и контекстное содержимое, а затем использую переменную ajax или GET для загрузки содержимого main-div, передав переменную $ p переключателю php. История браузера обрабатывается с помощью функции pushState.

Главная страница:

<!DOCTYPE html>
<html>
<head>
</head>
<body>
<div id="main-div">
<?php

if (isset($_GET['p'])) {
$p = $_GET['p'];

} else {
$p = "main";
}require_once("assets/switch.php");

?>
</div>

<script>
// Define state on first load
function defineState() {
"use strict";
window.history.replaceState("<?php echo $p ?>", "", "");
}
window.onload = defineState;function navegacion(dashboard, history) {

"use strict";
var urlPath = dashboard;
var xmlhttp;
var ActiveXObject;

if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else {
// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState === 4 && xmlhttp.status === 200) {

window.scrollTo(0, 0);

//document.title = "TITLE";

document.getElementById("main-div").innerHTML = xmlhttp.responseText;

if(history !== 1) {
window.history.pushState(dashboard, "", "index.php?p="+urlPath);
}

}
};
xmlhttp.open("POST","assets/ajaxapi.php", true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("dashboard="+dashboard);

}

// Allows for back and forward browswe buttons

window.onpopstate = function(e){
"use strict";
if(e.state){
navegacion(e.state, 1);
}
};</script>

</body>
</html>

ajaxapi.php:

<?php
if (isset($_POST['dashboard'])) {
$p = $_POST['dashboard'];

} else {
$p = NULL;
}

require_once("./switch.php");

Есть ли проблемы с производительностью этого кода, или как этот скрипт может быть улучшен?

Благодарю.

0

Решение

Задача ещё не решена.

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

Других решений пока нет …

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