3 заметки с тегом

js

Добавляем ссылкам Эгеи в статьях target=«_blank»

После публикации статьи «Минусы блогового движка Эгея» один из минусов был сразу решён. Речь об открытии ссылок из публикаций в новых окнах браузера. Дмитрий Шишкин предложил следующее решение:

//Добавляем ссылкам в публикациях target="_blank"
$(document).ready(function(){
    $(".e2-note-text a").attr("target","_blank");
  });

Чтобы им воспользоваться добавьте код выше в JS файл вашей темы. Если таковой отсутствует, то создайте папку «js» в вашей теме и поместите там файл с этим кодом. Назвать файл можно как саму тему. Эгея файл автоматически подгрузит.

Динамическая версия CSS и JS

Периодически приходится немного править каскадные таблицы стилей и скрипты на разных проектах. До сих пор я использовал следующее решение:

<link rel="stylesheet" href="/styles/main.css?<?php echo time(); ?>" />
<script src="/js/main.js?<?php echo time(); ?>"></script>

Где php-вставка подставляла текущее время и получался следующий код:

<link rel="stylesheet" href="/styles/main.css?1401823964" />
<script src="/js/main.js?1401823964"></script>

Это позволяло автоматически обновлять в браузере CSS и JS файлы с которыми работаю (борьба с кешированными версиями обновляемых файлов), создавая «разные» версии файлов, при каждой перезагрузке страницы. Но правильно ли так делать? Ведь даже если я ничего не менял, все равно браузер грузил все по новому.

Возможно, что лучше применять следующий алгоритм работы с кешем файлов такого типа:

  1. Берётся время последнего изменения файла.
  2. Сравнивается со временем указанным как версия файла (или с хранимыми где-то последними версиями файлов, которые используются).
  3. Если они равны, то ничего не меняется.
  4. Если не равны, то версия файла меняется на время последнего изменения файла (или старый файл заменяется новым).

Стоит ли вообще на этом заостряться? Или лучше воспользоваться одним из решений предложенных в дополнительных материалах или предложенным выше (вторая ссылка вроде предлагает решение по этому алгоритму)?

Дополнительные материалы

Умное Кеширование и Версионность в Javascript/CSS
(en) Automatic merging and versioning of CSS/JS files with PHP
(en) Automatic versioning of CSS, JavaScript and Images
(en) Simple CSS/JS Concatenation and Versioning with PHP
(en) Automating JS and CSS Versioning
(en) Make your pages load faster by combining and compressing javascript and css files

 1 комментарий    412   2014   css   js   php   кодинг

Решение проблемы с window.location.href в Chrome

Ковыряю сейчас online CRM для церкви и столкнулся с проблемой того, что объект window.location.href у меня не работал в браузерах на WebKit (Chrome и Safari) и ряде браузеров с другими движками, но корректно работал в IE.
После некоторых плясок с бубном и поиску в интернете, было найдено универсально работающее во всех браузерах решение.

window.location.href = "page.html"

заменить на

setTimeout(function(){document.location.href = "page.html";},500);
 5 комментариев    737   2013   js   кодинг