|
|
|
насколько eval медленнее чем обычное выполнение сценария js
|
|||
|---|---|---|---|
|
#18+
Всем привет. В ходе разработки столкнулся с тем, что не могу обойтись без функции eval (или могу и просто не знаю как? Надо для выполнения динамически загружаемого кода). Так вот, преимущественно код модулей будет выполняться через eval. Теоретически, на сколько медленнее будет работать такой код (может кто измерял разницу когда-то, или может это от чего-то зависит)? Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2014, 01:51 |
|
||
|
насколько eval медленнее чем обычное выполнение сценария js
|
|||
|---|---|---|---|
|
#18+
Програмёр, eval сначала парсит код, потом этот код исполняется как обычный. ну а парсинг такой же, как если бы ты подключил код как <script> ещё момент - eval(codeStr) выполняет код внутри локального контекста (код будет видеть локальные переменные функции), а (0,eval)(codeStr) - в глобальном. выбирай сам, что более подходит в твоем случае. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2014, 03:21 |
|
||
|
насколько eval медленнее чем обычное выполнение сценария js
|
|||
|---|---|---|---|
|
#18+
Яростный Меч, О... круть. Спасибо :) В моём случае получается разницы нету, дописывать в script или просто эвалом выполнять (по 1 eval на каждый файл). А насчёт глобального контекста, я сначала стягиваю файл, выполняю его в контексте лоадера (через eval), а когда подходит очередь к исполнению кода файла, выполняю главную функцию данного скрипта в контексте window (через call). Задумка просто добавить удобную модульность проектам. Всё ради такого "синтаксиса" модулей: Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Ну то есть хочу сделать (точнее уже сделал, пока ответа ждал) удобную подгрузку include'ов с правильным порядком выполнения кода (в данном случае application.js, myFile.js, helper.js, anotherFile.js, script.js) + асинхронность загрузки (на случай если с каким-то файлом затор случится например). Пока только не могу побороть проблему удобной отладки. Там trace ошибки немного засоряется (что не приятно), а код, исполняемый через eval в случае возникновения ошибки не может быть отслежен (то есть в консоле нету указания на файл и строку, в которых возникла ошибка, только на названия функций). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2014, 04:15 |
|
||
|
насколько eval медленнее чем обычное выполнение сценария js
|
|||
|---|---|---|---|
|
#18+
ПрограмёрТеоретически, на сколько медленнее будет работать такой код (может кто измерял разницу когда-то, или может это от чего-то зависит)? Для сравнения используй ресурсы проверки производительности. Например этот http://jspeed.yanzigitov.ru/ Код: javascript 1. Результат (больше - лучше): ≈ 1 667 340 выполнений/1000 мс Код: javascript 1. Результат (больше - лучше): ≈ 3 732 822 выполнений/1000 мс ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 08:23 |
|
||
|
насколько eval медленнее чем обычное выполнение сценария js
|
|||
|---|---|---|---|
|
#18+
авторЗадумка просто добавить удобную модульность проектам.Со стороны выглядит как способ накидать граблей на ровную полянку =) Евалить в JS это плохой тон HTML работает с DOM т.е. хорошим тоном является создание нового узла через .createElement(’script’) желательно в header На страницу(html приложение) приятно смотреть когда скрипты и стили подключаются в header а в теле страницы только разметка и текст все разложено по своим полочкам и там где оно должно лежать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 11:14 |
|
||
|
насколько eval медленнее чем обычное выполнение сценария js
|
|||
|---|---|---|---|
|
#18+
Малыхин Сергей На страницу(html приложение) приятно смотреть когда скрипты и стили подключаются в header а в теле страницы только разметка и текст все разложено по своим полочкам и там где оно должно лежатьЭто несущественно, изнанками сайтов любуются лишь специалисты по изнанкам. Главное style в body не лепить, сафари этого не понимает :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 11:20 |
|
||
|
насколько eval медленнее чем обычное выполнение сценария js
|
|||
|---|---|---|---|
|
#18+
Програмёр, а Вы RequireJS смотрели? Зачем свой лисапед изобретать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 11:22 |
|
||
|
насколько eval медленнее чем обычное выполнение сценария js
|
|||
|---|---|---|---|
|
#18+
Малыхин СергейавторЗадумка просто добавить удобную модульность проектам.Со стороны выглядит как способ накидать граблей на ровную полянку =) Евалить в JS это плохой тон HTML работает с DOM т.е. хорошим тоном является создание нового узла через .createElement(’script’) желательно в header На страницу(html приложение) приятно смотреть когда скрипты и стили подключаются в header а в теле страницы только разметка и текст все разложено по своим полочкам и там где оно должно лежать Хорошим тоном считается отделение логики от разметки :) потому "а в теле страницы только разметка и текст" у меня полностью соблюдается, так как код js изначально вынесен в отдельный файл, который грузится как главный модуль приложения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 12:11 |
|
||
|
насколько eval медленнее чем обычное выполнение сценария js
|
|||
|---|---|---|---|
|
#18+
AntonariyГлавное style в body не лепить, сафари этого не понимает :) Какой сафари? Часто об этом слышал, но вживую никогда не видел, пришло время восполнить пробел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 12:18 |
|
||
|
насколько eval медленнее чем обычное выполнение сценария js
|
|||
|---|---|---|---|
|
#18+
skyANAПрограмёр, а Вы RequireJS смотрели? Зачем свой лисапед изобретать? Нет. Только что посмотрел. Он работает по аналогии с include_once в php? Просто не совсем понимаю. и, по поводу самого стиля... мне удобнее так: Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. чем так: Код: javascript 1. 2. На любителя разумеется. А вообще, это всего лишь одна из задумок, которая уже реализована, так что не особо понимаю в чём лисапедность :) Тем более, что делается то не какой-то гигант... кода то фигня: Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 12:51 |
|
||
|
насколько eval медленнее чем обычное выполнение сценария js
|
|||
|---|---|---|---|
|
#18+
ПрограмёрХорошим тоном считается отделение логики от разметки :) Кем считается? Заказчиков и пользователей это не волнует, а мнение посторонних значения не имеет. В исходниках нужно разделять, не буду спорить, а в финальной разметке зачем это должно быть видно? Мало ли каким образом она собирается? Может и eval там к месту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 14:01 |
|
||
|
насколько eval медленнее чем обычное выполнение сценария js
|
|||
|---|---|---|---|
|
#18+
st_stAntonariyГлавное style в body не лепить, сафари этого не понимает :) Какой сафари? Часто об этом слышал, но вживую никогда не видел, пришло время восполнить пробел.Да вроде любой. Сам тоже не видел, только слышал :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 14:02 |
|
||
|
|

start [/forum/topic.php?fid=22&fpage=110&tid=1447489]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
30ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 227ms |
| total: | 319ms |

| 0 / 0 |
