-
Posts
92 -
Joined
-
Last visited
-
Days Won
1
Aroused last won the day on July 24 2011
Aroused had the most liked content!
Aroused's Achievements
Explorer (1/14)
1
Reputation
-
Где не спроси, везде на вопрос "почему нельзя использовать табличную верстку" ответят, мол с блоками html чище, да и вообще, что нельзя сделать используя блоки? Вопрос, есть к примеру вот такой код: div { width: 600px }span, input { display: inline-block }<div> <span class="lable">Имя</span> <input type="text" value=""> <br /> <span class="lable">Фамилия</span> <input type="text" value=""></div>Элемент span может менять свое содержимое, соответственно и собственную ширину, следовательно, что бы две строки с элементами span и input имели одинаковую ширину необходимо задать поведение для input. С одной стороны, если мы зададим для input display: block, он замечательно занимает свободное пространство, но так как блочный элемент не может быть на одной строке с другими, он соскакивает. А если мы используем display: inline-block, он отлично сидит как строчный, но уже не заполняет свободное место. Как быть? http://jsfiddle.net/okn0w4hp/
-
... Another Hard Days Work Здравствуйте. Целью создания темы является огромное желание решить мои сложности в работе как веб-девелопер. Мне очень хочется справиться с трудностями, хочется что бы мне кто-то сказал, что «О, да ты не правильно всё делаешь! Ни кто не строит так сайты, не разрабатывает никакой архитектуры, всё уже давно готово! Два месяца возишься с сайтом? Если так работать, то ничего не заработаешь, время обходится слишком дорого! Вот серебряная пуля веб-разработчика! Держи!». Но я понимаю, что нет никакой серебряной пули. Ни кто (по крайней мере добровольно) не предоставит мне свой опыт и инструменты. Но думаю, у меня отличная возможность получить совет у более опытных разработчиков и от тех, кто возможно в начале своего пути испытал подобные проблемы. Веб-разработкой я увлёкся два года назад. Буквально пару-тройку недель потратил на html и css, всё остальное время старался глубоко освоить javascript, поверхностно PHP и MySQL. Я стал браться за работу: небольшие сайты, портфолио, магазины, hyip-сервисы. И тут я понял, что я делаю что-то не так. Основная сложность в том, что все проекты делаю очень долго, бывало даже такое, что к моменту сдачи, элементарно заканчиваются все моральные и финансовые ресурсы. К примеру, последний проект — интернет-витрину я писал два месяца за штуку баксов и последние две недели «ворк-лайна», простите за выражение, не было даже «напожрать». В то время как веб-студии раздают сайты как горячие пирожки. Еще обратил внимание на тз крупного портала, за которое даже и не стал бы браться, но к моему удивлению, два парня из Белоруссии выполнили его за две недели. Возможно, что моё развитие в этом направлении где-то свернуло не туда. Я стал все свои разработки выделять в отдельную библиотеку (методами). Стараться создавать что-то универсальное, то есть если я делаю сайт-портфолио, я должен создать движок, что бы при необходимости быстро сделать еще 100500 таких сайтов. Так время разработки практически удвоилось, признав свою ошибку, понял, что предусмотреть всё невозможно. Собственно, ответа на вопрос «Какого черта ты так долго работаешь?» у меня нет. Но если попытаться обратить внимание на некоторые сложности которые я испытываю в своей работе, можно выделить несколько моментов. И так, в основном, всю нагрузку я переношу на клиента. То есть сервер отдаёт только стили, скрипты и json. Контент собирается уже в браузере. Всё работает очень шустро и я к такому принципу привык. Суть этого момента в том, что если проект большой, то приходится писать большое количество javascript-а. Вот пример без особых деталей: мы создаём объект который отвечает за работу с хешем(route) в нем методы; потом, объект по работе с контентом, в нем тоже методы запроса и методы вывода в dom; потом всякие модули для типов контента(что бы упростить дальнейшую поддержку); обработчики всякие; далее разработка админки, да и забыл, еще нужно перед всем этим спроектировать нормально расширяемую базу, пусть на mysql. С условием, что перечислена только основная часть объектов ядра сайта, в процессе разработки, дойдя до какого-то объема объектов, методов, функций, около 1000-1500 строк кода, всё это в голове превращается в кашу, ты уже не можешь видеть приемлемо детальную, общую картину в голове, что бы ничего не упускать. И дальнейшая разработка превращается в ад. Из этого результат - долго и нудно, а иногда и больно(если сроки сорвать). Прошу дать совет, знаю, что всё слижком субъективно, но возможно кто-то с этим сталкивался. Спасибо.
- 4 replies
-
- javascript
- work
-
(and 1 more)
Tagged with:
-
[jQuery] Мой мозг взорван! Порядок выполнения обработчиков событий.
Aroused replied to Aroused's question in JavaScript
Ладно, всем спасибо! Проще сделать прямой вызов функции по клику. Какой-нибудь класс ".hashed" с атрибутом "hash='newhash'". Забуду про это. -
[jQuery] Мой мозг взорван! Порядок выполнения обработчиков событий.
Aroused replied to Aroused's question in JavaScript
Может действительно криво реализован механизм этого события в jQuery. Что самое странное, вообще никакого дока для bind('hashchange') на оффициальном сайте jQuery нет. И еще, я искал в самом jquery.js хоть какие-то методы с "hashchange", но их тоже нет! Непонятно как это работает (но понятно что как-то криво). В ie 8 обработчик $().bind('hashchange') работает вроде , может у jQuery там проверка какая. Типа: var event = "onhashchange" in window || "hashchange" in window ... хотя нет, не нашел. -
[jQuery] Мой мозг взорван! Порядок выполнения обработчиков событий.
Aroused replied to Aroused's question in JavaScript
Сейчас я попробую объяснить почему меня это так беспокоит. Для нового сервиса была выбрана технология «hash-bang». https://developers.g...ification?hl=ru Не буду приводить код, просто поясню где возникают проблемы. 1. Загрузка страницы. 2. Запись пар ключ - значение (из хэша) в объект. 3. Проверка этих значений на допустимые (типа там "page", "lang", etc..). 4. Правим хэш в случае некорректного значения (установки по умолчанию). 5. Вешаем одноразовый обработчик "hashchange" (для запуска пунктов 2, 3, 4, 5 и 6 данного списка). 6. Запускаем функцию синхронной подгрузки контента. В итоге исходя из принципа работы обработчика, пункты 2, 3, 4, 5, 6 выполняются дважды (2, 3, 4, 5, 6, 2, 3, 4, 5, 6). При переходе по «hash-bang» ссылке, так же выполняются пункты 2, 3, 4, 5, 6 дважды. Первый запуск этих пунктов выполняется при клике по ссылке, а второй инициирует четвертый пункт из списка выше (чего не должно происходить, ведь обработчик $.one(), хотя с $.bind() + $.unbind() то же самое ). Если ни кто не понял о чем я сейчас написал, просто объясните почему после console.log('js end'); выполняется срабатывание обработчиков? И как кроме "нулевого" таймаута (кода много, таймаут опасен) обойти эту проблему? -
[jQuery] Мой мозг взорван! Порядок выполнения обработчиков событий.
Aroused posted a question in JavaScript
Код : // js start console.log('js start'); var hash = { 'set' : function(val){ window.location.hash = val }, 'log' : function(){ console.log('Hash log: '+ window.location.hash) }, 'bind': function(){ $(window).bind('hashchange', this.log) } }; // set hash.set('hash0'); hash.set('hash1'); hash.set('hash2'); hash.set('hash3'); // bind hash.bind(); // js end console.log('js end'); Резултат : js start js end Hash log: #hash3 Hash log: #hash3 Hash log: #hash3 Hash log: #hash3 1. Консолим запуск. 2. Меняем хэш 4 раза. 3. Вешаем обработчик. 4. Консолим завершение. Какого черта тут происходит? Почему обработчик вообще сработал? (Откуда ему знать что я сделал до его навешивания?) Почему хэш в консоле последний? (Ведь ни каких замыканий тут нет!) Javascript - это скриптовый язык или где? http://jsfiddle.net/ghTP9/ -
Пример. var a = {}; a.b = {} a.b.c = {} a.b.c.d ={ 'method': function(){ console.log(this); // Object { method:function() } - то есть a.b.c.d.method() } } Всё вополне понятно. А вот как получить доступ из метода к родительским объектам, к примеру a.b ? p.s. вариант прямого вызова по имени объекта не подходит. p.p.s. хотелось бы, что-нибудь простенькое, типа this.parent.parent Всем спасибо!
-
Получить в переменную html код выделенной области?
Aroused replied to Aroused's question in JavaScript
Да, пытаясь решить эту задачу я попал на ту же статью на хабре. Там решение есть только для ie - TextRange.htmlText - вернет HTML-содержимое объекта. UPD: А вот и счастье, совсем забыл про stackoverflow. ... here's a function that will get you HTML corresponding to the current selection in all major browsers: function getSelectionHtml(){ var html = ""; if(typeof window.getSelection != "undefined"){ var sel = window.getSelection(); if(sel.rangeCount){ var container = document.createElement("div"); for(var i = 0, len = sel.rangeCount; i < len; ++i){ container.appendChild(sel.getRangeAt(i).cloneContents()); } html = container.innerHTML; } }else if(typeof document.selection != "undefined"){ if(document.selection.type == "Text"){ html = document.selection.createRange().htmlText; } }; return html; }; -
<script> setTimeout(function(){ document.getElementById('fstip').style.visibility = 'hidden'; }, 4000); </script>
-
Всем добрый вечер! Помогите с решением. Задача - получить html код выделенной области на странице. То есть, мы вешаем обработчик на событие выделения (ну, можно mouseup), который при срабатывании запустит функцию, которая в свою очередь, вернёт строку выделенной области с наличием html тегов, буд-то мы выделяли исходный html код страницы. Где копал: 1. document.getSelection(); document.selection.createRange().text; window.getSelection(); - в возвращаемых объектах нет удобных методов и значений решающих мою задачу. 2. библиотека jQuery++ (amd/range.js) - $.Range.current() - возвращает выделенную строку без тегов. - $.Range.parent() - возвращает текущий DOM Node выделенной области. Подскажите, что как можно решить такую задачу?
-
Я думаю это хорошая защита от дурака (ну или от нервного ). Честно говоря меня пугает подтверждение регистрации по мылу тем, что я этого еще не делал и мне кажется, одним bool mail () и `secret` в базе тут не отвертишься. Предположу, что нужно будет хитро настроить что-то на серве и поговорить с буржуйской т.п.
-
Это как раз тот самый MySql Scheduler Я так понял моё беспокойство напрасно. Значит лучше сделать как у всех, что поделать... Хорошо. Спасибо свсем за советы.
-
С куками понятно. А вот на счет механизма проверки с таймером и если что последующим баном мне не ясно. Я к тому что, единственное в голову приходит это создать в базе табличку к примеру `activity` и пихать в неё каждое подключение и ++счетчик в ячейке +время. но само по себе это и будет запрос даже когда бан, я должен буду получать ip клиента, обрабатывать на серве и отфутболивать. что тоже запрос. Или это нормальный вариант? Или это не то? Пусть даже вся подсеть будет в бане из-за ip, это ничего, главное, что бы серв был "морозоустойчевый" И спать спокойно. Как-то слижком круто Стоит рассматривать. Спасибо Правда я почитал, что боты могут взять на себя 80% подключений. Может и надуманно. Не поднимаю ли я панику? А вообще такое часто бывает?
-
Здравствуйте. Прикручиваю не сложную регистрацию. Форма Name Login Pass E-mail. Отправляется post конечно, затем условно reg.php обрабатывает запрос (если всё нормально) и добавляет в базу. Что предусмотреть, (ну, к примеру) какая-то программа будет делать нч запросы на сервер и серв может лечь допустим. Капча не подходит, т.к. для клиента (и меня субъективно) это может послужить источником раздражения. Есть какие либо варианты? Я просто подумал, может, отслеживать такие атаки и закрывать доступ по ip. хотя толку мало. Всё равно будет проверка на серве забанен ip или нет. Вообще желание сделать регистрацию максимально простой, что бы не напрягать клиента. Скорее всего я чего-то не знаю, вот и прошу вашего совета. upd: "нч" - низкочастотные
-
Главное – донести информацию. VVV Мне нужен был многомерный массив. Не знал, что такое есть.