Как подгрузить css файл
21 повідомлення
#15 років тому
Здравствуйте. Подскажите как заставить браузер загрузить css файл повторно через ajax? Т.е . Браузер загружает css файл, но после некоторых манипуляций он меняется, и нужно обновить его, а браузер естественно все закешировал, и повторно без F5 не хочет грузить. Имя файла менять не выход.
16382 повідомлення
#15 років тому
В чем состоит исходная задача? Такое вот ее решения мне кажется не совсем корректным.
21 повідомлення
#15 років тому
Есть набор div , и есть консоль для работы с ними. например менять фон, размеры, шрифты, содержимое блоков, это все через ajax сделано. Вот получается что после каждой функции генерируем новые css свойства для div , чтоб запомнить их. Хотелось бы после этот файл css загрузить по новой, чтоб не менять параметры в ручном режиме через js.
626 повідомлень
#15 років тому
Самое правильное - менять именно через JS. AJAX и генерация CSS тут - это лишние сущности.
16382 повідомлення
#15 років тому
Все равно не понятно. Есть набор divов, на клиентской стороне мы получаем их новые свойства, отсылаем их на сервер и чтобы не применять эти свойства тут же на клиентской стороне тянем новый css с сервера (который там генерится) и этот css меняет свойства? Если так, то совсем не нарядное решение. Во первых свойства у нас есть как только мы получили их для отправки, так вместо того чтобы их применить мы их отсылаем на сервер (это время), там они обрабатываются, генерируется новый файл (это время) а потом шлем назад (это время и трафик). ИМХО менять тут же на месте и не выдумывать костыли.
2989 повідомлень
#15 років тому
А нафига тут вообще нужен ajax? То что Вы загрузите файл css, не значит что он будет применен. Для этого необходимо, чтобы браузер выполнил повторную обработку страницы. Если уж и надо подгружать css, то надо делать примерно так//list of files already added
var externalFilesAdded = '';
function loadExternalJsCssFile(fileName, fileType) {
if (externalFilesAdded.indexOf('') == -1) {
if (fileType == 'js') {
//if fileName is a external JavaScript file
var fileRef = document.createElement('script');
fileRef.setAttribute('type','text/javascript');
fileRef.setAttribute('src', fileName);
} else if (fileType == 'css') {
//if fileName is an external CSS file
var fileRef = document.createElement('link');
fileRef.setAttribute('rel', 'stylesheet');
fileRef.setAttribute('type', 'text/css');
fileRef.setAttribute('href', fileName);
}
if (typeof fileRef != 'undefined') {
document.getElementsByTagName('head').appendChild(fileRef);
externalFilesAdded += '';
}
}
}