|
|
|
| В последнее время довольно часто вижу, что в функцию eval(); вставляю сздание функций, оперции сравнения, циклы и т.д. и, что самое интересное, это не строковые значения!
То есть Вот пример:
eval(function func(int i){document.wrute(i);});
И т.д. и т.п.
Думал просто случаяно попадается, но увидел здесь такое же: http://softtime.ru/forum/read.php?id_forum=4&id_theme=52055&page=1
И стало интересно ))) Это новая мода или просто какой-то гениальный ход, который мне не понять? | |
|
|
|
|
|
|
|
для: DEM
(11.04.2008 в 14:32)
| | eval выполняет javascript код заключенный в его скобках. я его часто юзаю когда получаю js коды с помощью ajax... | |
|
|
|
|
|
|
|
для: Antohins
(11.04.2008 в 14:42)
| | никогда не юзаю и всячески стараюсь обойти это зло
думаю даже при запросе JS кода через ajax можно в итоге обойтись без eval | |
|
|
|
|
|
|
|
для: mechanic
(11.04.2008 в 16:03)
| | передаем несколько строк именно js кода.. сколько не старался, другого выхода не нашел. не то чтобы не смог реализовать, а не нашел.и почему вы считаете это злом? | |
|
|
|
|
|
|
|
для: Antohins
(11.04.2008 в 16:05)
| | eval is evil, известная фраза
да и потому что считаю, что этим пользуются те, кто не смог придумать другого решения | |
|
|
|
|
|
|
|
для: mechanic
(11.04.2008 в 16:32)
| | ок, спасибончез, учтем. | |
|
|
|
|
|
|
|
для: mechanic
(11.04.2008 в 16:32)
| | Это не ответ. Это нормальная функция, которая реализована во всех языках высокого уровня. Да, она тормозная. Ну и что? К тому же, не смотря на это, я ни разу не видел, чтобы из-за eval тормозило что-нибудь. Обычно туда не запихивают целое приложение. Туда запихивают пару строк, как правило. И нормально работает. В чем минусы? | |
|
|
|
|
|
|
|
для: SHAman
(11.04.2008 в 18:36)
| | >Да, она тормозная. Ну и что?
может и индексами в мускуле тогда не пользоваться? подумаешь медленно будет, ну и что?
>Это нормальная функция, которая реализована во всех языках высокого уровня
в C / C++ / C# тоже?
не нравится оно мне, не юзаю, считаю вообще дурным тоном.. мое имхо... | |
|
|
|
|
|
|
|
для: mechanic
(11.04.2008 в 22:58)
| | Ладно, во всех скриптовых языках.
Скажите, как вы догружаете JS Ajax-ом? Я вот знаю метод, но сначала вы:) | |
|
|
|
|
|
|
|
для: SHAman
(11.04.2008 в 23:59)
| | не приходилось.. когда столкнусь, уверен, найти решение не составит труда | |
|
|
|
|
|
|
|
для: SHAman
(11.04.2008 в 23:59)
| | Заинтересовали:) | |
|
|
|
|
|
|
|
для: Алексей Юрьевич
(12.04.2008 в 19:36)
| | Я, если нужно подгрузить много скрипта и лень использовать eval, отвечаю этим:
<script language="javascript" src="response.js"></script>
|
Получаю это на клиенте и встраиваю в DOM. Сразу после этого, браузер загружает response.js и с ним можно работать так, как обычно. Как видно, никаких eval тут нет. Но если задуматься, то eval происходит автоматически после того, как браузер загрузит response.js | |
|
|
|
|
|
|
|
для: SHAman
(11.04.2008 в 23:59)
| | Для передачи массивоа разработал такое решение:
отправить с сервера строку, вида
где str1 и str2 имеют вид
потом
var data = query.responseText.split(';');
var resData=[];
for(i=0;i<data.length;i++){
resData[i]=data[i].split[','];
}
в итоге в resData у нас прописан массив массивов
|
eval is evil - Quirksmode | |
|
|
|
|
|
|
|
для: DEM
(11.04.2008 в 14:32)
| | Для чего используется eval(); я понимаю, мне инетесно, зачем его исопльзовать так:
eval(function func(int i){ document.write(i);})l;
|
Вот нафига тут eval??? | |
|
|
|
|
|
|
|
для: DEM
(12.04.2008 в 00:21)
| | наверное вам не приходилось сталкиваться с разницей между строкой и частью исполняемого кода :) | |
|
|
|
|
|
|
|
для: Lelik
(12.04.2008 в 01:40)
| | Если не затруднит, объясните смысл использования eval() в вышеприведённом коде. | |
|
|
|