В вашем примере не нужен eval.
var x = {};
var mem = 'member_name';
x[mem] = 'string';
В своем проекте использовал евал только в одном особо извращенном случае, когда мне надо было вызвать функцию, о которой известно только ее имя в текстовом виде, плюс еще вернуть ее значение.
сделал так потому что спешил, потом переделал нормально, чтобы последователи не сломали себе моск и мне руки =)
Смешно. После первого письма показалось, что это шутка спамеров. После второго письма подумалось, что это шутка автора поста. Либо "серёга" насолил кому-то и его решили так подставить.
Либо я слишком хорошего мнения о людях, полагая, что кто-то шантажируя кого-то сообщит свое ФИО.
Изменения:
1. namespace перенес в $.trackbar
2. $.trackbar.archive сделал массивом
3. немножко поменял функцию инит (где было document.write)
4. идентификаторы внутренних контролов сделал локальными
Личный опыт. Когда начал использовать jQuery, меня поразило и очень приятно обрадовало обилие плагинов под все возможные задачи (какие я тогда мог придумать). Плагины были красивые, легко конфигурируемые, легко встраиваемые - поначалу не мог нарадоваться. Когда собрал свой проект из плагинов и реализовал необходимое мне поведение, начались проблемы.
То что прекрасно работало в режиме демо, отказывалось работать в режиме реальной эксплуатации, а на старых машинах - ппц тормозило. Что-то отваливалось в ie, что-то не хотело работать в opera. Поскольку сроки поджимали, я подумал, что проще будет найти ошибки и пофиксить их, благо лицензия позволяла фиксить ошибки.
В итоге ошибки были исправлены, проект сдан, но потребовалось огромное количество времени, чтобы заставить всё работать как надо. Размер загружаемой библиотеки перевалил за 500К (в сжатом виде).
Однако, по ходу исправления кода я заметил, что там делаются многие ненужные мне вещи, отказавшись от которых я ничуть не страдаю в функционале, зато выигрываю в скорости и размере библиотеки. И стал удалять ненужный код. В результате написал всё сам, с нуля, убрав ненужную функциональность, добавив нужную. Библиотека получилась 100к (с включенным datePicker.js, в который лезть не пришлось, поскольку он нормально работал, но весит 30к, цуко).
Мораль такова: не надо переписывать с нуля библиотеку jQuery, изобретать язык программирования в замену php, ruby, java, не надо делать очень многих вещей, но нельзя и всё-всё-всё перекладывать на посторонний код. Окошки, табы, загрузчики списков, гриды, постраничный вывод, панель действий, эмулятор mdi-интерфейса - всё это легко и просто пишется руками. Проще, быстрее, надежнее.
Не хочу спорить об очевидных вещах, но php - интерпретируемый язык, изначально не предназначенный быть оптимальным хранилищем данных. Не работал в битриксе, но думаю, что вряд ли сколь-нибудь серьезная задача работы с данными, включающая поддержку транзакций, журналируемости, обеспечения целостности, оптимизацию индексов и проч..
Конент в php возможен только в случае простейшей структуры типа конфигурационного файла, линейного списка небольшой величины.
так и есть, контент вводится редакторами, которые находятся в разных местах
но вводится в одну базу - главную. по этому нет зависимости от того, на каком сервере крутится php-скрипт (даже в рамках одной сессии).
Контент в php - ошибка проектирования. У нас весь контент в базе. Рабочая база реплицируется два раза в сутки на тестовую. Изменения структуры БД только на тестовой базе небольшими порциями. Если все работает - порция изменений переносится на основную базу.
Написал для себя web-сервис todo, вдохновленный идеей 3x3. Основа - движение задач из "кучи" в "запланированные". Запланированные делю на "сегодня" и "не сегодня". Идеально работать по механизму три на три - создавать три списка по три дела (по трём приоритетам). Получилось гораздо проще и удобнее чем в todoist.com и других он-лайн календарях и планироващиках.
Сейчас подумалось - может сделать это общедоступным сервисом, как считаете?
Для редактирования текста использую jEdit. И под виндами и под линуксом.
Для самообразования полезно поюзать линукс, но не ждите что это сразу решит ваши проблемы ;)
var x = {};
var mem = 'member_name';
x[mem] = 'string';
В своем проекте использовал евал только в одном особо извращенном случае, когда мне надо было вызвать функцию, о которой известно только ее имя в текстовом виде, плюс еще вернуть ее значение.
сделал так потому что спешил, потом переделал нормально, чтобы последователи не сломали себе моск и мне руки =)
Либо я слишком хорошего мнения о людях, полагая, что кто-то шантажируя кого-то сообщит свое ФИО.
Качайте http://ifolder.ru/6541350 - тут вместе с библиотекой. У меня работает на oper9,ie6+7,ff2
$('#id_elementa').trackbar(options);
Качать отсюда:
http://ifolder.ru/6540404
Изменения:
1. namespace перенес в $.trackbar
2. $.trackbar.archive сделал массивом
3. немножко поменял функцию инит (где было document.write)
4. идентификаторы внутренних контролов сделал локальными
То что прекрасно работало в режиме демо, отказывалось работать в режиме реальной эксплуатации, а на старых машинах - ппц тормозило. Что-то отваливалось в ie, что-то не хотело работать в opera. Поскольку сроки поджимали, я подумал, что проще будет найти ошибки и пофиксить их, благо лицензия позволяла фиксить ошибки.
В итоге ошибки были исправлены, проект сдан, но потребовалось огромное количество времени, чтобы заставить всё работать как надо. Размер загружаемой библиотеки перевалил за 500К (в сжатом виде).
Однако, по ходу исправления кода я заметил, что там делаются многие ненужные мне вещи, отказавшись от которых я ничуть не страдаю в функционале, зато выигрываю в скорости и размере библиотеки. И стал удалять ненужный код. В результате написал всё сам, с нуля, убрав ненужную функциональность, добавив нужную. Библиотека получилась 100к (с включенным datePicker.js, в который лезть не пришлось, поскольку он нормально работал, но весит 30к, цуко).
Мораль такова: не надо переписывать с нуля библиотеку jQuery, изобретать язык программирования в замену php, ruby, java, не надо делать очень многих вещей, но нельзя и всё-всё-всё перекладывать на посторонний код. Окошки, табы, загрузчики списков, гриды, постраничный вывод, панель действий, эмулятор mdi-интерфейса - всё это легко и просто пишется руками. Проще, быстрее, надежнее.
Конент в php возможен только в случае простейшей структуры типа конфигурационного файла, линейного списка небольшой величины.
но вводится в одну базу - главную. по этому нет зависимости от того, на каком сервере крутится php-скрипт (даже в рамках одной сессии).
Сейчас подумалось - может сделать это общедоступным сервисом, как считаете?
даже в переподе от гугла
<? php / *: раскладной = четко: tabSize = 4: indentSize = 4: * /
include_once'../_ основные / db.php ';
include_once'../_ основные / common.php ';
$ q = cm_fetch_var ( "q");
переключатель ($ с) (
дело "Отправить":
если (пустой ($ ответ)) $ ответ = массив ();
$ ответ [ 'errcode'] = 0;
$ = cm_get сообщение ( "Сообщение", "ул");
если ($ сообщение) (
$ = новый экз экз ( 'pCHAT_AddMessage');
$ экз-> парам ( 'PeopleRoleID', $ GLOB_RoleId);
$ экз-> парам ( 'ReceiverID', cm_get ( 'ReceiverID'));
$ экз-> парам ( 'SeminarID', cm_get ( 'SeminarID'));
$ экз-> парам ( 'Message', $ сообщение);
$ экз-> парам ( 'error', 0);
$ экз-> exe ();
если ($ экз-> в ( 'am_error')> 0) (
$ экз-> handle_errcode ( 'am_error');
Перерыв;
)
)
/ />>>
случае "Послания":
если (пустой ($ ответ)) $ ответ = массив ();
$ = новый экз экз ( 'pCHAT_Messages');
$ экз-> парам ( 'RoleID', $ GLOB_RoleId);
$ экз-> парам ( 'SeminarID', cm_get ( 'SeminarID'));
$ экз-> парам ( 'lastID', $ _SESSION [ 'семинар'. cm_get ( 'SeminarID')]);
/ / $ экз-> парам ( 'm_History', cm_get ( 'История', 'проверки'));
$ экз-> парам ( 'm_error', 0);
$ гр = $ экз-> exe ();
$ р = массив ();
$ номер = 0;
а ($ рес = mssql_fetch_assoc ($ гр)) (
$ р [] = $ рес;
Идентификатор $ = $ Резолюция [ 'ID'];
)
если ($ номер) $ _SESSION [ 'семинар'. cm_get ( 'SeminarID')] = $ идентификатором;
$ ответ [ 'м'] = $ р;
эхо php2js ($ ответ);
Перерыв;
)
?>
Для самообразования полезно поюзать линукс, но не ждите что это сразу решит ваши проблемы ;)