Jump to content

Sochog

Newbie
  • Posts

    16
  • Joined

  • Last visited

Posts posted by Sochog

  1. строчка из исходного кода страницы http://validator.w3.org/:

    	<script type="text/javascript" src="scripts/mootools.js"></script>

    Точно такая же есть на странице http://jigsaw.w3.org/css-validator/

    А вот строчка с сайта http://www.dell.ru/

    <script language="javascript" src="http://i.dell.com/images/global/js/lib/jquery-1.2.2a.js"></script>

    Я надеюсь вы смысл этих строчек понимаете?

    не могу подтвердить исходным кодом (он какой-то зашифрованно-запакованный хитро-й), но весь сервис gmail.com построен на jQuery. Вы пользовались gmail? сделайте проект такого же масштаба без фреймворка -- продолжим беседу.

    Ещё что? ( я проигнорировал те фразы, в которых не нашел смысла)

  2. Гибкий программист и гибкий код это не одно и то же...

    Согласен с Вами. Конечно, человек знающий все тонкости сможет больше, нежели человек знающий только фреймворк. Это разные уровни.

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

    Но тем не менее приходится. Был случай, когда фреймворк реализовывал все, что нужно, кроме одной функции, которая работала недостаточно гибко. Пришлось дописывать вручную.

    Разумеется фреймворк может не все. Человек использующий фреймворк рано или поздно столкнется с этим и придется мутить самому Се ля ви:(

    Но ведь я и не говорю, что фреймворк -- это панацея, которая всё сделает за нас. Он существенно облегчит жизнь и ускорит разработку -- это тоже немало.

    А я написал свою надстройку (фреймворком это назвать язык не поворачивается), и выиграл для всего развития проекта. Взял бы чужое - сидел бы бесконечно писал код.

    > 2. Разбирать чужой код -- глупость. Надо читать доки ("они рулез" (С)) и потратить в разы меньше времени.

    В доках, конечно же, описано, как исправлять баги во фреймворке...

    > С каждым месяцем -- всё больше Я развиваюсь, не стою на месте упершись лбом в стену .

    А я с каждым месяцом все меньше. Потому что концепция другая. Зачем писать больше, если можно повторно использовать код?

    > Не занимался этим, но думаю это достаточно элементарно.

    Это действительно элементарно. Но покажите мне фреймворк, в котором написано это элементарное. Никто мне до сих пор этого не показал. А потому что все думают шаблонно. Нужен доступ к элементу? А вот тебе класс или имя ноды, или ID. Но никто не думает, что можно просто подняться на уровень выше и получить нужный элемент без дополнительных идентификаторов.

    > Понимать суть -- да, понимать особенности браузеров -- бред.

    Скажите, чем отличается реализация стека event-listener'ов IE и FF?

    > Зачем всем бороться с одной и той же проблемой? Зачем нам каждому свой фреймворк? Разумно и правильно тут объединить усилия и сделать несколько общих. Выбирай какой хочешь. А если что не нравится -- переделывай как угодно, код-то открытый (кроме такой лажи как MS MFC и т.п.) -- это для товарища s0rr0w.

    А какой фреймворк лучше всего подходит для разработки интерфейсных решений? :(

    Сдается мне, у Вас какое-то "странное" мнение относительно того, как люди используют фреймворк.

    Мои тезисы:

    1. фреймворки упрощают жизнь и ускоряют разработку.

    2. фреумворки в пределах своих ограничений помогают забыть о кроссбраузерности

    3. фреймворки не надо поддерживать -- этим занимаются другие, весьма неглупые люди, а мы пользуемся (совершенно бесплатно)

    4. Если чего не хватает, можно фреймворк доделать и прислать свои труды разработчикам

    Если Вы считаете, что "Умные люди" (мыслящие не шаблонно :P))) не используют фреймворки -- то Вы считаете глупыми такие фирмы, как Google, w3c, DELL, Intel.

    Но вместе с тем, я не утверждаю, что фреймворки могут всё (найдете в моих высказываниях -- цитируйте) и избавят нас от всех проблем.

    Если вы не согласны с моими тезисами - пишите предметно, не собирайте бред. Ясен перец, что есть то, чего фреймворк не может, но это не значит, что нужно от него отказаться совсем и не использовать даже то, что он может :( (имхо).

  3. Написанную своими руками. Это да. Чужую - нет. Потому что времени на разбор чужого кода, в случае ошибки в коде фреймворка, можно потратить в разы больше, чем написать свою функцию заново.

    1. Это зависит от размера проекта и требований к нему. Если вы пишете веб-интерфейс к программе управления ядерным оружием (что само по себе забавно), то стоит подумать, можно ли доврять фреймворку. Если же проект небольшой, то пару таких общих функций можно и самому набросать, хотя смысла в этом я не вижу, если проект побольше, то лучше взять фреймворк. Может только для огромного проекта (когда у вас пара сотен программистов не занятых) имеет смысл писать свой фреймворк. Дело в том, что прогресс не дремлет и на поддержку развития своего фреймворка приходится тратить СВОЕ время, а чужой развивается сам. Конечно, если не выбрать сразу плохой фреймворк. Я очень высоко ценю своё время и не хочу "буксовать" на развитии самописных библиотек. Разьве только в целях развития, но это другая тема.

    2. Разбирать чужой код -- глупость. Надо читать доки ("они рулез" (С)) и потратить в разы меньше времени.

    И сколько действительно сложных и удобных скриптов ты написал?

    С каждым месяцем -- всё больше :rolleyes: Я развиваюсь, не стою на месте упершись лбом в стену :unsure: .

    Какой такой жаргон?

    <div class="super">
    <span>
    <b>
    <a href="#">link</a>
    </b>
    </span>
    </div>

    Мне нужно при нажатии на ссылку найти parentNode у которого nodeName=="SPAN", или parentNode у которого className содержит имя класса "super". Или parentNode, у которого существует некое свойство или атрибут "tst" например.

    Не занимался этим, но думаю это достаточно элементарно.

    А что трудного в реализации этих функций самостоятельно? Писать нужно для того, чтобы понимать, как это работает.

    Понимать суть -- да, понимать особенности браузеров -- бред.

    В ближайшем будущем единого стандарта JavaScript для браузеров не предвидится. То что если ты знаешь все нюансы JS в разных браузерах выводит тебя на более высокий уровень. Ты становишься гибким программистом.

    Я предпочитаю так: "Я знаю библиотеку которая скрывает от меня кроссбраузерные особенности (это называется "инкапсуляцией") и вместо кода для каждого браузера пишу всё единообразно => я гибкий программист".

    Это лучше (помимо удобства, логичности и простоты) ещё и тем, что при появлении нового браузера, новых диалектов JS, я беру новую версию фреймворка, а не перелопачиваю весь свой код. Можете не соглашаться, но именно это и есть другой уровень имхо.

    Хотя в Ваших словах есть смысл -- для разработчика фреймворка. Эти люди вникают в суть диалектов и тем самым избавляют остальных людей от этой неблагодарной работы (за что им почет и хвала, и , кажется, солидная денежная компенсация).

    Зачем всем бороться с одной и той же проблемой? Зачем нам каждому свой фреймворк? Разумно и правильно тут объединить усилия и сделать несколько общих. Выбирай какой хочешь. А если что не нравится -- переделывай как угодно, код-то открытый (кроме такой лажи как MS MFC и т.п.) -- это для товарища s0rr0w.

  4. Это вредит обучению и пониманию этих мелких нюансов. :) И если задача маленькая, и средства не оправданы, то библиотеки в данном случае - это плохо.

    Мне представляется всё немного сложнее: одно дело -- вникнуть в нюансы JS такого, как он описан у w3c, и совсем другое -- посмотреть как это всё реализованно, например, у ЧУДЕСНОЙ фирмы майкрософт. Второе -- труд неблагодарный, и не влечет глубокого понимания чего-либо, кроме идиотизма некоторых производителей ПО. Что касается размера задачи, то в живых проектах задачи имеют обыкновение расти вширь и вбок, и тут как раз-таки будет очень дальновидным сразу использовать нормальную библиотеку.

    Шаблонное мышление. Все действия делаются исходя из того, что умеет фреймворк, а не исходя из потребностей.

    По-моему, совсем наоборот - не зацикливаешься на деталях, а делаешь то, что нужно именно тебе.

    Покажите мне фреймворк, который умеет находить парента с нужным именем ноды. А с нужным классом? А с наличием нужного свойства или атрибута?

    Уверен, что такие есть, но кроме того стоит и посмотреть на код, который это делает.

    Честно говоря, я не очень понимаю Ваш жаргон (парента с нужным именем ноды), но если Вы выразитесь точнее, думаю, большинство JS-фреймворков это осилят. Что касается кода, то сдется мне его совсем не дураки пишут, и вряд ли он сильно плох :(

    Например, в каждом браузере нужно по-разному добавлять обработчики событий,

    Одна функция.

    вычислять высоту окна браузера

    Одна функция.

    Именно так. Одна функция. НО вот только ЗАЧЕМ кажому программисту реализовывать эти функции самостоятельно?! О_о

    Ведь фреймворк - это не только ценный мех... то есть не только удобный, но ещё и выверенный, проверенный код, работающий на всех или почти всех браузерах. Каждый ли программист сможет сделать это сам, и главное -- сколько времени на это потратит? Для чего?!

    , работать с аяксом и т.п.

    У меня 6 кил несжатого текста, но очень специфический код.

    Фреймворк избавляет нас от этой му..ты. Это плохо? :)

    Плохо наступает тогда, когда вместо одной функции используется 30 килобайт ненужного барахла.

    Если учесть, что нормальный браузер после первого обращения их закэширует (а основная масса сайтов ориентирована на постоянных юзеров), то 30-150КБ -- это совсем ерунда. К тому же, потом обязательно понадобятся ещё функции...

    То же самое касается CSS-фреймворков.

    А многие PHP-фреймворки вообще подталкивают к написанию приложений с четкой структурой и работой. Уменьшается риск XSS, SQL-инъекций. Без фреймворка (особенно на весьма "дырявом" языке PHP) все эти угрозы весьма опасны, их трудно заблокировать, особенно если не шарить в этом. А многие в этом шарят?!

  5. сделал первый вариант. Генерит примерно это (только со всеми остальными штуками -- доктайп, тайтл и т.п.):

    <form action="http://..." method="post" id="f"><div>
    От: <input type="text" name="City1" value="" /><br />
    Через: <input type="text" name="City2" value="" /><br />
    Нажмите эту кнопку:
    <input type="submit" value="Определить" name="Submit1" />
    </div></form>
    <script type="text/javascript">
    document.getElementById('f').submit();
    </script>

    Всё получается, но в опере 9.27 успевает сначала появиться эта форма, а лишь затем идёт переадрессация. Форма и кнопка нужны на тот случай, если у юзера нет JS.

    Либо надо как-то ускорить (изменить) этот процесс, либо реализовать ещё и второй способ.

  6. Vialls, =)))))

    Banyman, погуглил бы хоть, что ли...

    Короче, есть несколько вариантов: либо примерно таким способом, как написал товарищ Vialls, к каждой второй строке в тег tr добавляем какой-нибудь класс (например, class="odd") и добавить соответствующий стиль в CSS. Либо простым клиентским скриптом, скажем с помощью jQuery, раскрашиваешь после загрузки.

    Если у тебя таблица создается не скриптом, а в явном виде содержится в файле, например, html, то надо лезть в код и править. Или накидать программку на перле, которая всё поправит.

  7. Помогите, плиз решить проблему.

    Нужно, чтобы строка таблицы была ссылкой.

    Делаю

    <a href="index.html"> 
    <tr><td><input type='checkbox' name='n1'></td><td>NAME</td></tr>
    </a>

    В IE работает, а в Opera не хочет??

    Может нужно как-то по-другому?

    stosen, как вы представляете себе поведение браузера при нажатии на чекбокс, являющийся одновременно частью ссылки??

    Похоже, stosen, Вам нужна форма, а не ссылка. Чего вы вообще хотите добиться в итоге?

  8. Короче, пока видится 2 варианта:

    1) либо направить форму на свой пхп скрипт, который выдаст страницу перенаправления на исходный скрипт, но эта страница будет в вин-1251,

    2) либо использовать метод $.post() из библиотеки jQuery (пока ещё не уверен, что так можно ^_^ )

    А лучше и то, и другое на случай если у юзера нет скриптов или они заблокированы.

    Это решение мне не очень нравится, т.к. оно достаточно сложное, буду весьма признателен за Ваши идеи и предложения :P

  9. Помогите, плиз решить проблему.

    Нужно, чтобы строка таблицы была ссылкой.

    Делаю

    <a href="index.html"> 
    <tr><td><input type='checkbox' name='n1'></td><td>NAME</td></tr>
    </a>

    В IE работает, а в Opera не хочет??

    Может нужно как-то по-другому?

    Я вижу только одно решение -- в каждую ячейку целевой строки вложить ссылку со свойством "display: block". Если высота содержимого ячеек таблицы разная, то нужно ещё задать высоту ссылкам равную высоте самой высокой ячейки. Высоту можно вычислить и задать скриптом. Ссылки тоже можно повтыкать скриптом. Только нужно учесть случай, если скрипты отключены =).

    Правда если в таблице есть расстояния между ячейками (cellSpacing или border-spacing), границы ячеек или отступы в ячейках, то все они не будут ссылками. Поэтому нужно ещё убрть отступы и границы у ячейки и придать их ссылкам в них.

  10. Представьте, что вы строите суперкар. Вам дали некого робота сборщика. Его задача - облегчить ваш труд по сборке. Робот умеет скручивать детали, приваривать их одну к другой, может красить детали, может разбирать детали автоматически. Вы решаете, что робот вам серьезно облечит задачу, и начинаете пробовать им пользоваться. Вы собираете какую-то часть, на первом этапе вам кажется, что вы закончите работу очень быстро, все продвигается хорошо, готовы базовые куски. Но через время вы начинаете мыслить категориями функциональности робота. Вместо простого решения вы начинаете создавать сложные команды, потому что вам все еще кажется, что робот ускоряет вам работу. Так как костылей в работе становится больше, суперкар теряет легкость и красоту, потому что робот не смог что-то реализовать.

    А достаточно было собрать самое трудное роботом, а дальше сменить робота или выполнить все руками при помощи обычных инструментов. Достаточно разбить задачу на массу мелких, и ее решать станет намного легче.

    Умные люди так и делают ^_^ Робот (например, jQuery) делает сложные, муторные, рутинные работы, вроде кросс-браузерного поиска элементов по ЦСС-селекторам :P, а уже обработку найденного осуществляет простой код скрипта. 54КБ скриптов -- это, бесспорно, не так мало, но это не страшная жертва по сравнению с писаниной руками всех этих действий. Например, в каждом браузере нужно по-разному добавлять обработчики событий, вычислять высоту окна браузера, работать с аяксом и т.п. Фреймворк избавляет нас от этой му..ты. Это плохо? :P

  11. на некоторых браузерах с мобильного телефона http://pomogite.wen.ru/ вначале ставит какието символы.. что-то типа ї>?

    Почему так и как эого избежать?

    Вполне возможно, что это проявился так называемый BOM или Byte-Order-Mark. В текстовых файлах в кодировке utf-8 в начале может идти такая отметка. Она занимает в utf-8 ровно три байта. Что это такое написано здесь: http://en.wikipedia.org/wiki/Byte-order_mark. В кодировке windows-1251 это выглядит так: п»ї. При этом, правда, должны исказиться все символы кроме набора ASCII, то есть, например, все русские буквы.

    Только что проверил, в Вашей ссылке действительно присутствует BOM. Его просто надо удалить и будет Вам счастье ^_^

  12. Ну это уже не по теме. Я же не пишу преимущества div'ов и что таблицами верстать плохо и т.д.

    Ну, да... Моё сообщение на грани офф-топика ^_^ Но я думаю, не смертельно :P

  13. Sochog

    Цитата

    Все же позвольте полюбопытствовать; как сотворить TABLE с узорами и не прямыми а волнистыми на пример стенками? Я правельно выразился? Я имею ввиду имено TABLE а не DIV.

    Ну и, собственно, что?

    Я разьве обязан отвечать именно на тот вопрос, который Вы приводите в цитате? Я просто дополняю ответ смежной темой. Я же не говорю (и даже не думаю), что Вы не умеете делать это дивами.

    Может кого-нибудь заинтересует возможность сделать так, как я показал. Или даже сам автор посмотрит на мой код и решит отказаться от таблицы в качестве средства верстки ^_^ В данном случае (как и в большинстве) решение на слоях компактнее и гораздо гибче, используется 2 тега вместо пяти, при интерпретации браузерами не возникнут всякие приколы с лишними пробелами (впрочем, и у Вас не возникнут).

  14. Можно сделать и дивами, например так:

    <div style="padding-left:50px;background:left url('left_bg.png') repeat-y">
    <div style="padding-right:50px;background:right url('right_bg.png') repeat-y">
    здесь всё что угодно...
    </div>
    </div>

    При этом пэддинги могут не обязательно быть равны по ширине друг другу и ширине картинки и текст может налазить на эти картинки при необходимости. Единственное, не уверен, что сработают одинарные кавычки в url(). Можно написать вместо них " -- тогда должно, а ещё лучше создать внешний файл со стилями.

  15. Проблема в следующем:

    Имеем страницу в кодировке utf-8. На странице имеется форма, в которую вводятся названия городов (русскими буквами). Форма отсылает введенные данные на другой сайт. На сайте том кодировка windows-1251. Его CGI-скрипты не хотят обрабатывать данные в utf-8. Сайт чужой и повлиять на него не получается ^_^, а переводить исходную страничку на windows-1251 нельзя по определенным причинам.

    Вопрос в следующем: можно ли как-нибудь заставить браузер отправить данные из формы не в той кодировке, в которой закодирована сама страница с формой?

    Искал в гугле -- не нашел. Нашел только других людей, у которых была такая проблема, и они с ней не справились.

    Пробовал сделать так:

    <form action="http://..." method="post" enctype="application/x-www-form-urlencoded; charset=windows-1251">

    не получилось :P

    Поискал на этом форуме -- тоже не нашел...

    На странице уже есть jQuery, может его можно использовать для этой цели как-нибудь?

    Вот тут, кстати, человек интересуется той же проблемой: http://forum.developing.ru/showthread.php?t=3052

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy