Часто используемые | ||
| неразрывный пробел | |
  | короткий пробел | |
  | длинный пробел | |
­ | | мягкий перенос |
— | — | длинное тире |
– | – | короткое тире |
… | … | многоточие |
« | « | левая кавычка елочка |
» | » | правая кавычка елочка |
© | © | (c) |
® | ® | (R) |
™ | ™ | TM |
Математические | ||
± | ± | +- |
× | × | умножить |
≠ | ≠ | не равно |
< | < | < |
> | > | > |
≤ | ≤ | <= |
≥ | ≥ | >= |
√ | √ | квадратный корень |
² | ² | квадрат, вторая степень |
³ | ³ | куб, третья степень |
¼ | ¼ | 1/4 |
½ | ½ | 1/2 |
¾ | ¾ | 3/4 |
∞ | ∞ | бесконечность |
Стрелки | ||
← | ← | стрелка влево |
↑ | ↑ | стрелка вверх |
→ | → | стрелка вправо |
↓ | ↓ | стрелка вниз |
↔ | ↔ | стрелка влево и вправо |
↵ | ↵ | стрелка вниз, потом влево, как Enter |
⇐ | ⇐ | стрелка двойная влево |
⇑ | ⇑ | стрелка двойная вверх |
⇒ | ⇒ | стрелка двойная вправо |
Прочие | ||
& | & | амперсанд |
€ | ? | евро |
′ | ′ | ' |
″ | ″ | '' |
· | · | точка на середине высоты строки |
‾ | ‾ | Надчерк |
° | ° | градус |
Подборка публикаций по web-программированию, PHP, JavaScript, CSS, HTML, серверные вещи, браузеры, информационные технологии, и немного компьютерного юмора.
суббота, 28 марта 2009 г.
Коды основных символов HTML
jQuery Tabs. Ajax загрузка в один и тот же div контейнер
Эта статья будет полезна тем, кто использует такую мощную штуку как jQuery UI, в частности элемент интерфейса Tabs. jQuery Tabs позволяет в несколько строчек кода создавать удобный и быстрый набор вкладок на HTML странице.
Контент в каждой из вкладок может быть как статическим,так и динамически загружаемым при помощи ajax-а. Все доступные опции и методы этого элемента управления неплохо расписаны на официальном сайте jQuery, поэтому я углубляться не буду.
Приведу пример использования:
<div id="contacttabs">
<ul>
<li><a href="all.html"><span>Все контакты</span></a></li>
<li><a href="friends.html"><span>Друзья</span></a></li>
<li><a href="invisible.html"><span>Список невидящих</span></a></li>
<li><a href="ignore.html"><span>Список игнорируемых</span></a></li>
</ul>
</div>
<script type="text/javascript">
$(document).ready(function() {
$("#contacttabs").tabs({
spinner: 'загрузка...'
});
}
</script>
После загрузки страницы создастся четыре вкладки, содержимое, в каждую из них, будет загружено динамически ajax-ом. Все недостающие контейнеры, в которые загружать содержимое вкладок, jQuery создаст сам. Эта часть будет выглядеть приблизительно вот так (содержимое div-ов опущено для упрощения восприятия):
<ul class="ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all">
...
</ul>
<div id="ui-tabs-16" class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide"></div>
<div id="ui-tabs-27" class="ui-tabs-panel ui-widget-content ui-corner-bottom"></div>
<div id="ui-tabs-29" class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide"></div>
<div id="ui-tabs-31" class="ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide"></div>
Вкладок четыре, соответственно DIVов-контейнеров тоже четыре. У меня проблема возникла вот в чём. В данном конкретном примере, содержимое вкладок было одинаковым по структуре, но различным по смыслу. Появлялась ситуация, когда элементы HTML-страницы имеющие одни и те же ID-шники появлялись на разных вкладках.
В текущий момент времени пользователь видит только активную вкладку, и может взаимодействовать только с элементами, находящимися в контейнере выбранной вкладки. Все остальные имеют атрибут hidden. Это значит, что элементы загружены в DOM для каждой из вкладок, хотя и не видны в данный момент времени, и если обратиться по уникальному ID-шнику элемента на вкладке, то может возникнуть «коллизия», и селектор выберет совсем не тот элемент, который хотелось из активной вкладки.
Единственным выходом для меня было – подчищать содержимое контейнеров неактивных вкладок, дабы не возникало дублирование ID-шников. Такой опции в jQuery Tabs, я найти не смог, пришлось написать небольшой hook. Я навесил на событие select, возникающее в Tabs, в момент переключения активной вкладки, очистку всех неактивных контейнеров <div>.
<script type="text/javascript">
$(document).ready(function() {
$("#contacttabs").tabs({
spinner: 'загрузка...',
select: function(event, ui) {
/*clear all divs content except active one*/
fakes = ui.panel.parentNode.getElementsByTagName('div');
for(i=0;i<fakes.length;i++){
if(fakes[i] != ui.panel){
fakes[i].innerHTML = '';
}
}
}
});
});
</script>
И тогда всё заработало, как следует..
четверг, 5 марта 2009 г.
Смешные комментарии в коде
Насобирал отличную подборочку смешных комментариев в коде, думаю, программисты оценят свою же лирику (=
// sometimes I believe compiler ignores all my comments
// drunk, fix later
return 1; //returns 1
// Magic. Do not touch.
const int TEN=10; // As if the value of 10 will fluctuate...
//This code sucks, you know it and I know it. Move on and call me an idiot later.
doRun.run(); // ... "a doo run run".
try {
} finally { // should never happen
}
/* These magic numbers are fucking stupid. */
/* TODO: this is obviously not right ... this whole fucking module sucks anyway */
/* FIXME: please god, when will the hurting stop? Thus function is so fucking broken it's not even funny. */
//I am not sure why this works but it fixes the problem.
// I am not sure if we need this, but too scared to delete.
// I have to find a better job
// Remove this if you wanna be fired
if (case1) { // trivial
...
}
else { // we are screwed
/* fill in later */
}
if (/*you*/ $_GET['action']) { //celebrate
Замедляет ли Google Analytics сайт?
Если вы используете Google Analytics для отслеживания посещений на вашем блоге, то вы можете быть удивлены скоростью загрузки страниц, по-крайней мере в Европе точно заметно. Народ начал замечать, что в так называемые «часы-пик» использования Web-а код JavaScript от Google Analytics грузится на 97% медленнее по сравнению с обычной нагрузкой. Это справедливо для Европы. Для США такое падение в скорости тоже имеет место, но не такое заметное, разница составляет всего лишь 27%.
Чем это обусловлено – сложно сказать. Скорее всего, просто большинство серверов Гугла расположено не в Европе, и поэтому большое количество пользователей даёт такую усадку по скорости загрузки. Конечно, это не означает, что нужно перестать пользоваться этим прекрасным сервисом, и боятся за скорость загрузки вашего сайта. Всё это некритично.
Есть конечно и ряд других аналогичных некоммерческих сервисов для отслеживания посещений на вашем сайте. Сегодня один из моих друзей показал мне такую вещь как Woopra (http://www.woopra.com). На данный момент сервис находится в стадии бета-тестирования, но багов мной не было замечено, можно смело пользоваться. По возможностям сервис превосходит аналогичный GA (Google Analytics). Единственный недостаток – у них большая нагрузка на сервера и поэтому можно ждать около месяца пока ваш аккаунт утвердят. Что сразу бросилось в глаза – Woopra может отслеживать посещения и анализировать поведение пользователей вплоть до отдельного индивидуума, такого GA, конечно, не предоставляет.