Jump to content

rgl

User
  • Posts

    109
  • Joined

  • Last visited

Everything posted by rgl

  1. Хочу определить див заданной высоты с прокруткой, делаю так <div id="d" style="height:810px;overflow:auto;"> в IE и хроме работает как хочу, в опере - растягивается по размеру содержимого. Что я делаю не так?
  2. Всем спасибо, теперь все хорошо!
  3. Добрый день. Хочу расположить текст на форе картинки, точно в нужном месте. (номера участков на карте) Делаю так: <td> <div style="height:806px; width:497px; background-image:url(limber_test.png)"> <span id="m1" style="position:absolute;top:97;left:101">1</span> <span id="m2" style="position:absolute;top:115;left:117">2</span> <span id="m3" style="position:absolute;top:133;left:133">3</span> <span id="m4" style="position:absolute;top:81;left:137">4</span> ......................... </div> </td> Но положение циферок относительно картинки в разных браузерах отличается. Как это исправить? (Да, забыл сказать, все это находится внутри таблицы)
  4. rgl

    Что за сайт?

    Понятно :-( Заплатил гуглу за контекстную рекламу, чтобы показывалась по ключевым словам. Вместо этого они показывают непойми где, а кто случайно кликает, сразу уходит.
  5. rgl

    Что за сайт?

    Интересно бы понять как там появилась ссылка на меня.
  6. Просматривая источники переходов, нашел вот такой сайт, кто-нибудь знает что это такое и кто туда добавляет ссылки? http://www.xn--l1adgmc.com/
  7. Не совсем в тему...т.е. не про FireFox, а только про неумение верстать. Пользуюсь услугами провайдера sweb.ru, в целом доволен, но сайт у них сверстан с ошибками - иногда при недостаточной ширине экрана прячутся существенные элементы, при этом никакой горизонтальной прокрутки не появляется, и ничего другого, по чему можно было бы догадаться что эти элементы вообще присутствуют. А еще у них ошибка в коде кнопки, вот, взгляните: http://sweb.ru/company/buttons/ Там дважды встречается строка "SpaceWeb &8212; профессиональный платный хостинг", очевидно, нужно написать — а не &8212 т.е. между & и цифрами нужна решетка. Неделю назад я им об этом написал, они ответили, мол, спасибо, ваша информация передана разработчикам, но за неделю так ничего и не исправили.
  8. Хочу организовать форум. Посоветуйте хостинг и движок. Опыт и знания на нуле, все, что могу, посмотреть - на каких движках работают форумы, которые мне нравятся. Например phpBB http://www.phpbbguru.net/ или SMF http://www.simplemachines.org/ Какой из них предпочесть и главное, на что нужно обратить внимание при выборе хостинга, чтобы быть уверенным что выбранный движок на нем будет работать. Спасибо.
  9. Тут не то, что нужно, но вдруг что-нибудь полезное можно позаимствовать? http://javascript.ru/blog/mycoding/Rotation
  10. Два раза один и то же id разве можно?
  11. rgl

    Checked. true!=true?

    А не проще вместо a.checked = ( a.checked ? false : true ); написать a.checked = ! a.checked;
  12. Как сортировать таблицу на HTML+JavaScript? Несложно нагуглить объяснения и готовые решения с описаниями. Однако все то, что мне удалось найти, рассматривает задачу как единое целое, и ответ на интересующий вопрос приходится "выкавыривать" из описания и примера. (При этом нет уверенности что эта "выковырянная" информация правильная). На самом деле задачу нужно рассматривать как несколько относительно независимых задач 1. Событие, по которому надо сортировать таблицу по той или иной колонке. 2. Применяемый алгоритм сортировки, написанный самостоятельно, или же использовать встроенную функцию 3. Функция сравнения (простые варианты - сравнивать как числа, сравнивать как строки, но регистронезависимо, но возможны намного более сложные варианты) 4. Как собственно переставить строки на экране. Вот как раз четвертый вопрос меня и интересует. Вопрос такой - если я буду переставлять строки таблицы так: tmp = tbl.rows[i].innerHTML; tbl.rows[i].innerHTML = tbl.rows[j].innerHTML; tbl.rows[j].innerHTML = tmp; правильно ли так делать? Попробовал - работает, но все-же нет уверенности что будет работать везде, что нет какого-то более правильного метода, ну и т.д.
  13. Опять про DOM... я же говорил про отличия в самом языке. Сделать можно. Напр. может понадобиться реализовать какой-то не очень простой алгоритм, для чего нужен только язык (плюс некоторые способности, навыки) а из DOM в какой-то конкретной задаче может быть достаточно того же document.write или же innerHTML, т.е. начальные знания, которые способный человек при необходимости "подхватит на лету". Как насчет сортировки таблицы? Реализовать алгоритм сортировки, либо же воспользоваться готовым, но для этого может понадобиться написать нетривиальную функцию сравнения, где тут DOM?
  14. А кто языком называл? А конкретные отличия можно назвать? А то получается что-то типа "хоть и одно и то же, но это вовсе не значит, что одно и то же". И никакая не "счастливая случайность", а так задумано. А то, что мизерные отличия наверно найти можно - ничего не значит, так всегда бывает в разных реализациях языка. Разные версии JavaScript друг от друга отличаются больше, но все равно мы говорим что это один язык. Хочу вернуться к тому, с чего собственно спор начался - давайте забудем про различия между JScript и JavaScript, изначально вопрос был можно ли знать JavaScript и не знать DOM, ответить могу так - есть стандарт языка, DOM туда не входит. Язык (даже без DOM) примитивным назвать нельзя, большинство тех, кто на нем пишет, всех возможностей не знает или слышал но не умеет пользоваться. Значит, там "есть что знать" даже без DOM
  15. В интернетах пишут разное, как то, что JScript - другой язык, так и то, что язык тот же самый, просто нежелание микрософта использовать то же имя. "JScript тут используется как контейнер, а по сути это WSH (Windows Script Host) - языко-независимая технология" - и что, перестает быть языком? Есть операторы и конструкции, позволяющие делать вычисления и управлять последовательностью выполнения программы - значит язык. Другой или тот же самый? Да можно тыщу раз придумывать новые имена одному и тому же (или разным реализациям одного и того же), а в чем РЕАЛЬНЫЕ отличия? Даже версии друг другу соответствуют.... "языко-независимая технология, которая может писаться на любом ActiveX (JScript, VBScript)" - так и в HTML можно тоже встраивать бейсик. Значит не язык а языково-независимая технология? Чтобы утверждать, что это другой язык, надо показать достаточное количество отличий (если отличий мало, можно называть разными вариантами языка, ведь отличался же С и Паскаль микрософтовские от борландовских, но все равно это были С и Паскаль). А как раз отличий не просто мало, их похоже вообще нет (если отвлечься от DOM), т.е один и тот же язык. А теперь вопрос практический - если человек в совершенстве знает один (например JScript) то имеет ли он право говорить, что знает JavaScript но не знает DOM? По-моему спор как раз из-за этого...
  16. Аргумент - то, что JavaScript реально используется для написания программ, не имеющих никакого отношения к интернет-сайтам, и чтобы писать такие программы, нет необходимости что-либо знать про HTML, DOM и т.д. Люди, занимающиеся сайтами, не проводят границы между JavaScript и DOM, ничего страшного в этом нет, пока занимаешься только сайтами и обсуждаешь вопросы только из этой области. Напр. многие считают, что в ЯЗЫКЕ есть функция setTimeout и нет функции Sleep. Это не совсем так. На самом деле нет ни той ни другой функции, но пока вы программируете сайты, вставляете программы внутри HTML, вы можете использовать функцию setTimeout из DOM. Но если вы пишете для операционки, ситуация меняется на противоположную, нет setTimeout но есть Sleep. Вот вам доказательство, запишите этот код в файл с расширением .js и запустите его. WScript.Echo( "Hello!" ); WScript.Sleep( 5000 ); WScript.Echo( "Hello again!" ); У нас JavaScript используется для написания тестов, для взятия исходников из VSS и автоматической сборки проектов, ... Удивляться "как можно знать JavaScript и не знать HTML, DOM" это все равно что удивляться "как можно считать себя хорошим водителем и не знать карту Москвы"
  17. JavaScript - язык программирования, который используется не только для интернет-страничек. В операционке Windiws файлы с расширением .js являются исполняемыми.
  18. В многочисленных примерах кода часто используется функция getElementById, вот например "озебривание" таблицы: <table border id="tb"> <tr><td>1.1<td>1.2<td>1.3</tr> <tr><td>2.1<td>2.2<td>2.3</tr> <tr><td>3.1<td>3.2<td>3.3</tr> <tr><td>4.1<td>4.2<td>4.3</tr> <tr><td>5.1<td>5.2<td>5.3</tr> <tr><td>6.1<td>6.2<td>6.3</tr> <tr><td>7.1<td>7.2<td>7.3</tr> <tr><td>8.1<td>8.2<td>8.3</tr> <tr><td>9.1<td>9.2<td>9.3</tr> </table> <script type="text/javascript"> var tb2 = document.getElementById( "tb" ); for( var i=0; i<tb2.rows.length; ++i ) tb2.rows[i].bgColor = i%2 ? "red" : "blue"; </script> Но в старых книжках, которые я читал больше пяти лет назад, учили делать так: <script type="text/javascript"> for( var i=0; i<tb.rows.length; ++i ) tb.rows[i].bgColor = i%2 ? "red" : "blue"; </script> и тоже все работает. Вопрос - зачем использовать getElementById если и без этого можно? Поиском ничего не нашел, везде объясняют КАК использовать но не "зачем это нужно"
  19. Пару замечаний немножко не в тему: 1. Если таблица имеет фиксированное количество колонок, это нормально. Но количество строк надо уметь легко поменять. А поэтому я бы не делал цикл от нуля до трех, а до длины массива, т.е. выделенную строку лучше заменить на for(var i = 0; i < parametr_func.length; i++){ 2. Сам скрипт находится непонятно где, ни в хеде ни в боди. Я бы либо поместил его внутри тега body либо же разбил на две части - первая - определение функции, вторая - определение массива(-ов) и вызов функции. Вторую часть обязательно в тег body. 3. parametr_func по моему несколько неудачное название, хочется думать что это ссылка на функцию.
  20. Гы.... все то же самое, а именно, нужно сначала четко определиться, что мы понимаем под каким-то термином, а затем уже обсуждать и спорить. То, что я увидел в приведенном в начале странички примере, говорит, что тут оба слова, и "сортировка" и "массив" используются в несколько другом смысле, а конкретно - если у пар (ключ-значение) есть какой-то порядок, который можно поменять (напр. при сортировке), то это нечто большее, чем ассоциативный массив. Каждой такой паре можно естественным образом присвоить номер, а значит к значению можно доступиться по ключу (что собственно и требуется от ассоциативного массива), но можно также и по номеру - а это свойство простого массива. И вот этот простой массив, в котором хранятся пары (ключ-значение) как раз и сортируется. Ассоциативный же массив остается таким, каким и был, т.е. как было у элемента с ключом d значение lemon", а у элемента с ключом a - orange, так они и остались. Другими словами, кроме ассоциативного массива есть еще скрытый (?) обычный массив, вот он как раз и сортируется.
  21. Мое утверждение не совсем верно - наверно это так. Давайте подумаем что такое сортировка. Есть некоторое множество полей, ячеек, элементов, не важно как называть. У них есть названия (имена, номера), и в них могут храниться значения. Иногда (но не всегда) у ячеек есть какой-то естественный, самоочевидный порядок, напр. если это числа, то по возрастанию. Так вот, сортировка - перестановка ЗНАЧЕНИЙ так, чтобы в результате порядок НАЗВЕНИЙ и порядок ЗНАЧЕНИЙ совпадал. У массива (обычного) есть естественный порядок ячеек - порядок целых чисел. Поэтому понятно что значит сортировка. Для ассоциативных массивов это не так, но придумать что-нибудь можно :-) Теперь о подобии - когда начинал осваивать JavaScript, тоже слышал везде, что по подобию С. Но различий так много, что сейчас это утверждение считаю неверным. О массивах (обычных). Никто не станет спорить что в С массивы есть, и никто не назовет их неполноценными. Тем не менее нет добавления элементов в начало и в конец, нет обращения, соединения. Да, кажется, вообще ничего нет :-) хотя кое-что из этого списка можно легко реализовать самому. Все что я хочу сказать - наличие сортировки, обращения, добавления в начало - возможности, наличие или отсутствие которых не должно быть критерием в вопросе - является ли нечто ассоциативным массивом или нет. Про хэш вообще ничего не говорил. Привел ссылку на статью в википедии про ассоциативные массивы. "Под видом" ничего не приведено, просто при инициализации объекта использован этот самый JSON, можно было обойтись и без него, присвоив начальные значения с помощью точки или квадратных скобок. Суть от этого бы не поменялась.
  22. А я попытаюсь дать определение (сам, никуда не заглядывая). Хэш-функция - это функция, значение которой непредсказуемо, и как бы случайно зависит он аргумента. Т.е поменяли в исходном значении что-то незначительно (один битик в целом числе, одну букву в строке) и значение функции поменялось, причем поменялось сильно, независимо от того, как мало поменялось исходное данное. Понятно, что в криптографии требование к "как бы случайно" намного выше.Хэш-таблица - структура данных и метод поиска в нем (а также добавления), основанный на использовании свойст хэш-функции. Просто хеш - некорректное использование слова, что нередко встречается, когда, например, марганцовку называют марганцем, а нашатырный спирт - нашатырем. Теперь о свойствах объекта. В языке С есть структуры, у которых есть поля. Последнее время их стало модным называть не полями а свойствами, но суть не меняется. Главное, что если у структуры s есть поля a,b и c, то мы можем доступиться до них написав s.a s.b s.c, так должно быть написано в программе, и нет никакого способа указать к какому из полей мы хотим доступиться используя переменную.В JavaScript все не так, там можно доступиться, s[ x ] где x - переменная, содержащая текстовую строку, сообщающую к какому именно полю мы хотим доступиться. Все, этого уже достаточно чтобы называть это ассоциативным массивом. Есть операция добавления, доступа, удаления. Тоже повторюсь - ассоциативные массивы и (просто) массивы - два разных понятия, а не одно - разновидность другого. У ассоциативного массива нет и не может быть сортировки, обращения, нет начала и конца, просто по определению. Я к сожалению не знаю PHP поэтому тут ничего сказать не могу. Ссылки: 1. Ассоциативный массив в википедии. Приводятся конкретные примеры в т.ч. и объекты JavaScript http://ru.wikipedia.org/wiki/%D0%90%D1%81%...%81%D0%B8%D0%B2 2. Сайт javascript.ru на этом форуме считается авторитетным источником. Вот что там написано: Именно то, что я и утверждаю, максимальный целочисленный индекс плюс один. И больше ничего.Если написать: var a = new Array(); a[10] = 0; то "длина" будет 11, a[15] не существует, но равным образом не существует и a[5] Я как раз не ошибаюсь. Я точно знаю, что массив в других языках программирования - это расположене элементов в памяти последовательно, т.е. если есть первый элемент и есть десятый, то будет и второй, третий, и т.д. (или по крайней мере будет память где он должен находиться, с конкретным адресом). В JavaScript такого нет, занимают память только существующие элементы, и это потому что массивов в JavaScript нет, есть только эмуляция массивов с помощью ассоциативных_массивов. Нет, не так. Пустые элементы в JavaScript не будут занимать память ни в какой реализации интерпретатора.Еще раз: 1. массив и ассоциативный массив - два разных понятия, а не одно - разновидность другого. У ассоциативного массива нет и не может быть сортировки, обращения. 2. Хэш-таблица - метод поиска, с помощью которого можно реализовать ассоциативный массив. Но это есть и должно быть скрыто, и если вместо хэш-таблицы использовать какое-нибудь из многочисленных деревьев, ничего не поменяется. Так же как "быстрая сортировка" - название метода (алгоритма) сортировки, но когда вы вызываете функцию сортировки, вам не важно знать что она делает внутри, и действительно ли там быстрая сортировка или heap-сортировка, или еще какая-то.
  23. Так устроен alert, а что тут удивительного? Циклом от нуля и до (но не включая) длину можно ходить, если заранее известно, что все элементы внутри диапазона есть, почти всегда надеяться действительно можно. Либо же можно проверять элемент на существование. var a = new Array(); a[1000000000] = "test"; alert(a[1000000000]); alert(a.length); Где берется столько памяти для пустых элементов? Для начала надо бы определиться с терминами. Еще раз, кто такие "хеши" не знаю, вот в цитате написано про хеш-таблицы, есть хэш-функции, а просто "хэши" - нет такого. А главное, прежде чем спорить "ассоциативный массив или нет" надо дать ЧЕТКОЕ определение этому термину. Тоже приведу цитату (про ассоциативные массивы) Т.е. хэш-таблица - способ реализации. А "не верю" я потому что достаточно хорошо знаю предмет (имеется ввиду JavaScript, если рассматривать его отдельно от объектной модели браузера. Ведь это язык, который применяется не только для создания интернетных страничек). Вот только спорить письменно тяжело. http://javascript.ru/basic/array#avto-dlina-length По вашей же ссылке - в JavaScript имеется loose поддержка ассоциативных массивов (слово loose перевел бы как "слабая", "ограниченная", но все же имеется ведь. А чем же она ограничена? Нет удобного конструктора - это та. Нельзя проходить как в STL в порядке возрастания ключей, перейти к следующему, предыдущему (но чтобы это было возможно, надо для начала задать этот самый порядок ключей. Для целых чисел он самоочевиден, а для значений произвольного типа, где могут быть вперемешку дробные числа, строки, ... - как? В STL при создании map можно задать функцию сравнения ключей, да, возможностей больше, но это как раз те возможности, которые выходят за рамки понятия "ассоциативный массив"
  24. И в чем я должен убедиться? Сортировка для ассоциативного массива - понятие не определенное. Еще раз: если в термине "ассоциативный массив" есть слово "массив" это вовсе не значит, что ассоциативный массив - разновидность массива. Это совершенно другое понятие. Ходить циклом можно используя for( i in ...), кстати, а вот по простому массиву в JavaScript ходить циклом можно не всегда, запросто можно создать массив, в котором десятый элемент есть (и "длина" будет одинадцать), а первого-второго-третьего нет. Понятия "большие хэши" не знаю. Слово "хэш" знаю в двух смыслах, 1. способ организации поиска, который описан в теории, но на практике наверно уже не применяется, всякие там деревья лучше. Но в любом случае это был бы СПОСОБ РЕАЛИЗАЦИИ ассоциативного массива. 2) Криптографический хэш - к обсуждаемой теме очевидно никакого отношения не имеет. Понимать так, что length возвращает НЕ размер массива (количество элементов), а максимальный целочисленный номер.
  25. Я совершенно ничего не знаю про PHP поэтому, возможно, не понял вашего утверждения, что конкретно вы имели ввиду. Я только знаю общепринятое значение слов "ассоциативный массив" - это (если можно так сказать) массив, в котором индексов может быть не число, а (скажем) произвольная строка. В этом смысле объекты в JavaScript - это ассоциативные массивы. Другой пример ассоциативного массива - map в STL Если я не могу использовать методы push(), shift() - это вовсе не говорит что что-то - не ассоциативный массив. Это говорит скорее что не массив с целочисленным индексом. Просто не надо считать понятие "ассоциативный массив" разновидностью просто массива, это два разных понятия, хоть и в названии есть общее слово. Так вот, правильнее сказать было бы, что в JavaScript нет "просто массива" а сделана его эмуляция и помощью ассоциативного массива, или, что то же самое, объекта. В простом массиве, в известных языках программирования, элементы располагаются в памяти подряд, и невозможно сделать массив, в котором бы был и первый и сотый элемент, но не было бы двадцатого и тридцатого (хотя можно в то место, где эти элементы должны быть, записать значение "пусто", но память все равно будет выделена. В JavaScript все не так, память выделяется только для тех элементов, которые есть, и располагаются они в памяти не "в порядке номеров".
×
×
  • 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