freeneutron
User-
Posts
203 -
Joined
-
Last visited
Content Type
Profiles
Forums
Calendar
Store
Everything posted by freeneutron
-
Раскрутка сайта не удалась FAIL В Опере, если у инпута стоит атрибут disabled, то данные с этого инпута не идут в запрос. Надо быть с этим осторожным.
-
Переход между страницами без обновления шапки
freeneutron replied to freeneutron's question in HTML Coding
Думаю, данный эффект возникает тогда, когда все статичные элементы (в данном случае шапка и левая колонка) размещены в первых 4 Кб получаемого от сервера html-кода. Браузеры обычно не обновляют рабочую область до тех пор пока не получат 4 Кб html-кода (установлено экспериментально для Оперы, Хрома и Мазилы) или пока не пройдет некоторый интервал времени после первого ответа сервера. Так что, если мы хотим получить такой эффект, то мы должны: 1. Впихнуть все статичные элементы в первые 4 Кб html-кода 2. Не позволять серверу отвечать до тех пор пока объем буфера ответа не достигнет 4 Кб Подчеркну, что это всего лишь моя догадка -
Полазил по одному сайту и вот на что обратил внимание. Там при переходе со страницы на страницу, длительность загрузки может составлять до 2-х секунд, но при этим шапка и левая колонка даже на миг не пропадают с экрана. Обычно, на других сайтах, в такой момент старая страница пропадает, а новая появляется в нескольких разных вариантах, соответствующих разному объему загруженной информации. Количество этих вариантов зависит от продолжительности загрузки и частоты обновления рабочей области браузера. Здесь же вариации испытывает только содержимое центрального, блока. Я сначала было подумал AJAX, но приглядевшись к коду, понял, что это чистый HTML. И суть эффекта, таким образом, осталась для меня загадкой. Кто-нибудь понимает, в чем здесь фишка?
-
Вопрос в том, на какое событие лучше всего прицепить ajax-запрос, сообщающий серверу, что пользователь воспользовался кнопками браузера back, foward?
-
установление соответствия между тегами и CSS-селекторами
freeneutron replied to freeneutron's question in PHP
Спасибо всем, кто отозвался. Да, без регулярных выражений здесь не обойтись. Но тогда почему бы не использовать их на всю катушку? У меня есть подозрение, что любой CSS-селектор можно конвертировать в соответствующее регулярное выражение, которое бы и справлялось с моей задачей. Тогда искомая функция упростится до безобразия: function is_match($str,$selector){ $selector=css2preg($selector); return preg_match($str,$selector); }А вся логика перейдет функцию конвертирования CSS-селектора в регулярное выражение: function css2preg($selector){ //Поиск имен тегов (div, span) и приведение их к виду: (<div, <span) $selector=preg_replace('/(^| )([^.# ]+)/','$1<$2[^<]+',$selector); //Поиск имен классов и приведение их к виду: class="" $selector=preg_replace('/\.(\S+)/','class="[^"]*$1[^"]*"',$selector); //Поиск имен идентификаторов и приведение их к виду: id="" $selector=preg_replace('/\#(\S+)/','id="[^"]*$1[^"]*"',$selector); //Поиск пробелов и замена их на символы произвольного расстояния: .* $selector=preg_replace('/ /','.*',$selector); //Поиск символов > и замена их на соответствующее выражение $selector=preg_replace('/>/','[^>]*>[^>]*',$selector); //echo"$selector\n"; return $selector; }Если имеем CSS-селектор: div.bb span.a b.ad span То на выходе будем иметь: <div[^<]+class="[^"]*bb[^"]*".*<span[^<]+class="[^"]*a[^"]*".*<b[^<]+class="[^"]*ad[^"]*".*<span[^<]+ Как видно для каждой синтаксической конструкции можно подобрать соответствующее правило преобразования. Здесь остается подобрать правила: для замены символа * для выражений в квадратных скобках и (если я ни чего не забыл) для сброса псевдоклассов (:active и тп) Если все это учесть, то останется еще две проблемы: 1. css2preg() не сможет правильно обрабатывать последовательности типа: .class1.class2#id1#id2 2. Как на полученные регулярные выражения будет реагировать preg_replace() не известно, то есть надо еще тестировать и подгонять. На все это нужно время и усилия, поэтому опять же хотелось бы найти что-то готовое, и надеется на то, что оно где-то есть. Набирая в поисковике запрос: css to preg, не получаю ни чего вразумительного. Возможно, то, что мне нужно скрывается под каким-то хитрым запросом, только ни чего больше не приходит пока на ум. Поэтому, если у кого будут какие соображения, пишите, буду рад... -
Решаю задачу установления соответствия произвольного CSS-селектора произвольному тегу некоторого HTML-кода. То-есть, если для некоторого HTML-кода составлен такой список, <html> <html><head> <html><head><title> <html><body><div id='main'> <html><body><div id='main'><div id='header'> <html><body><div id='main'><div id='content'> <html><body><div id='main'><div id='footer'>что каждому тегу данного HTML-кода в этом списке соответствует строка, состоящая из самого тега и всех его родительских тегов, и если есть некоторый CSS-селектор, например: "#content", то моей задачей является составление (или отискание) функции is_match($string, $css) такой, которая для каждой сроки из упомянутого списка и произвольного CSS-селектора устанавливала бы их соответствие и возвращала бы true в случае соответствия и false в противном случае. Например: is_match('<html><body><div id='main'><div id='content'>', '#content') возвращает true is_match('<html><body><div id='main'><div id='header'>', '#content') возвращает false Кто сталкивался с чем-то подобным, или есть какие-то соображения по поводу решения задачи, пишите. Очень хотелось бы все это обсудить.
-
Ну ты чего-то намутил с strstr и explode. Попробуй использовать preg_match
-
По какой причине первая загрузка страницы может отличаться от следующих?
freeneutron replied to freeneutron's question in JavaScript
Я сначала думал это касяк Оперы. Но оказалось, это и в Хроме и в Фаерфоксе тоже происходит. -
Вот страница, о которой речь. Когда я ее переделываю и обновляю в браузере, картинка с девочкой, с эблемой на груди отображается довольно нелепо, так словно скрипт, отвечающий за загрузку картинки думает, что высота последней = 0. Эмблема должна размещаться в центре подложки, то есть на груди у девочки, но она оказывается у нее над головой. Если еще раз обновить страницу, то эффект пропадает. Теоретически из-за чего такое может происходить?
-
Помню русская часть одного многоязычного сайта состояла из таких символов. Из-за чего на нем ни чего из русского нельзя было найти в поисковиках. Английский же язык нормально отыскивался через Яндекс и через Гугл. Так вот хотелось бы избежать подобных проблем на своем сайте. Ну и так для общего развития, просто интересно.
-
А у меня проблема в том, что не представляю как \uXXXX-символы преобразовать в utf-8 на стороне JavaScript. Подскажите, кто в курсе, плиз...
-
Как в CSS-селекторе учесть пробелы в аттрибутах class и id?
freeneutron replied to freeneutron's question in HTML Coding
Спасибо за подробные пояснения. -
Как в CSS-селекторе учесть пробелы в аттрибутах class и id?
freeneutron posted a question in HTML Coding
Есть пример из трех дивов <div id='a1'> a1 </div><br> <div id='a2'> a2 </div><br> <div id='a1 a2'> a1 a2 </div><br> Как должен выглядеть селектор, если требуется обратиться третьему диву, не затрагивая 1-и и 2-й? Такой селектор почем-то не работает .a1 a2 -
JQuery это делает просто $('.class1').each(function(){this.checked=true;});
-
<script>for(i=0;i<count(arr);i++)document.write(arr+'<br>')</script>
-
Побитовые операции в JavaScript работают не как в php
freeneutron replied to freeneutron's question in JavaScript
А я выгуглил только посимвольный перебор. PS. Эх, как классно было бы, если бы JavaScript был таким же послушным, как и php. -
Побитовые операции в JavaScript работают не как в php
freeneutron replied to freeneutron's question in JavaScript
А можно имя функции для исключающего или? -
jquery: Вынести ответ ajax за пределы callback функции
freeneutron replied to Микель's question in JavaScript
Перенесите alert в тело функции. -
Возьмем побитовую операцию - Побитовое исключающее ИЛИ В php код: $s='aaaa'^'abab'; echo strlen($s); дает 4 В то врема, как в JavaScript код: s='aaaa'^'abab'; alert(s.length); дает undefined Видно, что функциональность JavaScript в этом отношении ограничена по сравнению с php. И напрашивается вопрос. Есть ли в JavaScript аналог php-побитовых операции?
-
Придумал! Надо кнопку вызывающую UpldFile(f) обернуть в тег <a href='' id='h1'>...</a>, а сама функция должна выглядеть так: function UpldFile(f){ $('#h1').attr('href','file.php?file='+f); alert('Data send'); }
-
И у меня такая же проблема А самый прикол в том, что по запросу JQuery download выдаюдся ссылки на скачивание библиотеки, не на обсуждение проблемы...
-
В Опере 10 @font-face опять появился Источник
-
Я хочу опубликовать djvu-документ с формулами, картинками и скрытым текстом в html-формате. Да так, что бы скрытый текст индексировался поисковиками. FineReader не может качественно отделить текст от формул, поэтому для лучшего вида надо делать 2 слоя, а может и 3, как в djvu (текст, полутоновое изображение, цветное изображение). А как еще опубликовать отсканированную книгу, если она большая?