Я хотел бы задать ваше мнение. Я создаю веб-страницу ajax. Мои ссылки делают GET URL-адреса, на который они ссылаются, выбирают div.content и изменяют содержимое фактического div.content.Сайт Ajax. Страница правильно загружена в зависимости от предыдущей страницы
Это действие GET извлекает HTML-код с некоторым кодом в нем. Он выглядит корректно, но только тогда, когда я не перехожу от конкретной ссылки. Я не вижу никакого смысла.
Я не знаю, какой код может быть полезен для публикации здесь, чтобы увидеть эффект, я apolozise, если я вставляю много или слишком меньше кода.
У меня есть эти две функции для управления загрузкой новых ресурсов сценариев в основной раскладке:
loadScript: function (scriptUrl, callback) {
if (jsArray[scriptUrl]) {
console.log("loadScript already loaded " + scriptUrl);
callback && callback();
} else {
jsArray[scriptUrl] = true;
console.log("loadScript " + scriptUrl);
var body = document.getElementsByTagName("body")[0];
var script = document.createElement('script');
script.type = "text/javascript";
script.src = scriptUrl;
script.onload = callback;
body.appendChild(script); //or something of the likes
}
},
loadScripts: function (scriptsUrl, callback) {
console.log("loadScripts");
if (scriptsUrl.length === 1) {
this.loadScript(scriptsUrl[0], callback);
} else {
var scriptUrl = scriptsUrl[0];
scriptsUrl.shift();
this.loadScript(scriptUrl, function() {
Main.loadScripts(scriptsUrl, callback)
});
}
}
};
Все моя связь с классом асинхронном будут переплетены в этой функции:
var loadAsyncUrl = function (url) {
if (main.currentPage === url) {}
main.currentPage = url;
$("div.container .page-content").hide();
$("div.container .loading-link").show();
$.get(url, function (data) {
$("div.container #page-header").html($(data).find("div.container #page-header").html());
$("div.container .breadcrumb").html($(data).find("div.container .breadcrumb").html());
$("div.container .content").html($(data).find("div.container .content").html());
$("div.container .loading-link").hide();
$("div.container .page-content").show();
}, 'html')
.fail(function (e) {
alert("ERROR 404");
console.log(e);
});
};
If I перейдите со страницы A на любую страницу (даже сама страница A), вызовы loadScripts, которые есть в нижней части div.content, не вызываются. С другой стороны, если я перейду со страницы B на любую страницу, даже снова A, код будет выполнен правильно.
На странице A, на самом деле, HTML-код немного тяжелее, чем другие страницы, со всеми правилами CSS и т. Д., Которые потребляют, вероятно, больше времени для рендеринга. Может быть, это и есть причина? Как вы объясните, загрузите ли я снова страницу A, идущую со страницы A, она загружается должным образом?
Как вы справитесь? Я хотел бы, чтобы ссылки указывали на полную веб-страницу, а не только на частичный html, который я хочу загрузить. Я хочу это, потому что, если пользователь решает открыть на новой вкладке, у них есть весь раздел.
Вы получили какую-либо ошибку с консоли? – faby
Я этого не сделал. Проблема решена. Как выполняется JS, даже если он не делает то, что я ожидал, но это еще один момент ... Спасибо – splig
надеюсь, что мой ответ приведет вас к правильному пути – faby