LINUX.ORG.RU

[javascript, php] оцените код


0

0

Разрабатываю сетевую платформу, прилагаю исходники клиентской (index.php) и серверной (api.php) части

1. http://i077.radikal.ru/1006/5c/7458a63bf020.png - клиентская часть

syscall - функция отправки асинхронных и синхронных запросов. При наличии параметра handler запрос обрабатывается как асинхронный, иначе как синхронный (возвращая responseText)

_syscall_parseargs преобразует объект вида {param1: «val1», param2: «val2»} в строку «param1=val1&param2=val2» (по этой функции вопрос: можно ли обойтись без eval?)

XHR - кроссбраузерный вариант XMLHttpRequest()

2. http://s005.radikal.ru/i210/1006/2e/398d416287d1.png - серверная часть, тут поинтереснее

Основная задача скрипта - обработать запрос и вернуть результат клиенту. обрабатываются стандартные запросы (md5, ping), модули могут подключать свои обработчики (например, usrfs.lib.php - модуль для работы с пользовательской ФС - обрабатывает запросы usrfs::read, usrfs::write и пр.)

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

исходники клиентской (index.php)

Бред какой. Брез был бы неполным если бы мы не обнаружили скриншоты сорцов.

wfrr ★★☆ ()

_syscall_parseargs преобразует объект вида {param1: «val1», param2: «val2»} в строку «param1=val1&param2=val2» (по этой функции вопрос: можно ли обойтись без eval?)

Погуглите про JSON и его поддержку в браузерах, а еще лучше заюзайте какуюнить готовую библиотечку.

wfrr ★★☆ ()
Ответ на: комментарий от wfrr

неужто расширение так важно? к тому же раньше использовались PHP-вставки (сейчас отказался от них)

заюзайте какуюнить готовую библиотечку.

мне не нужно полноценной поддержки JSON на клиенте (в серверной части, да, надо будет заюзать), если с этим справляется функция в 4 строчки. предложите код для преобразования простой конструкции {параметр: значение} в строку, короче и элегантнее

Брез был бы неполным если бы мы не обнаружили скриншоты сорцов.

в чём именно бред, кроме _syscall_parseargs?

avbelyy ()
Ответ на: комментарий от avbelyy

мне не нужно полноценной поддержки JSON на клиенте (в серверной части, да, надо будет заюзать), если с этим справляется функция в 4 строчки. предложите код для преобразования простой конструкции {параметр: значение} в строку, короче и элегантнее

Я на это непросто намекал, а можно сказать ткнул вас носом:

JSON.stringify({a:"s",b:new Date()})

в чём именно бред, кроме _syscall_parseargs?

В том что вы предоставили нам скриншоты сорцов.

wfrr ★★☆ ()

исходники в скриншотах чтобы мы не сперли?

moot ★★★★ ()
Ответ на: комментарий от wfrr

в курсе. это так важно для оценки исходного кода в 50 строчек, да?

http://pastie.org/1002834 - клиент

http://pastie.org/1002840 - сервер

надеюсь, далее пойдут замечания по теме

Я на это непросто намекал, а можно сказать ткнул вас носом:

спасибо, посмотрю исходник этой функции.

avbelyy ()
Ответ на: комментарий от avbelyy

посмотрю исходник этой функции.

В мозилле он наверняка окажется написанным на C++ (как часть API), вас действительно он интересует?

wfrr ★★☆ ()
Ответ на: комментарий от wfrr

>не обнаружили скриншоты сорцов

O_o? страшно идти по ссылке.

dimon555 ★★★★★ ()

>скриншоты сорцов

И ведь правда. Такого ещё не было! Тут ещё, кстати, есть такая штука, лоркод и [code][/code], там даже подсветка есть, если указать язык.

Deleted ()

каждый программист в какой-то определенный момент своего развития пишет свои собственные велосипеды. либо он не знает о существовании фреймворков, либо бережет свободное место на диске и не хочет тащить весь фреймворк из-за 2-3 нужных фич, либо считает, что лучший велосипед - тот, который собран своими руками.

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

под вашу задачу рекомендую посмотреть на JSON-RPC средствами Zend Framework + dojo. Вот подробное описалово: http://framework.zend.com/manual/en/zend.json.server.html а в инете можно нагуглить несколько прекрасных примеров.

heisenberg ★★ ()

Скриншот сырцов - это пять с плюсом. Давайте вашу зачетку.

Insomnium ★★★★ ()

oh shi~ а что, пастебины отменили? или вы думаете, ваш код кому-то нужен кроме вас, что вы заставляете нас ломать глаза на ваших скринах. Имейте хоть какое-то уважение.

JFreeM ★★★☆ ()
Ответ на: комментарий от KRoN73

Есть как минимум одно: мы оба сидим на ЛОРе ;)

wlan ★★ ()

1 for(var key in args) output += key + «=» + eval(«args.» + key) + «&»;

Вконце будет лишний «&», не критично но некрасивo

2 я бы сдлал так: если handler = func, to async = true, а по дефолту async = false

3 if (req.readyState == 4 && req.status == 200) /// blah-blah

4 Вам точно нужен Math.random()?

5 «return false» это какая-то особая магия?

6 вынесите весь JS код в js файл, который подключите вконце index`a (мухи отдельно котлеты отдельно)

ZuBB ★★★★★ ()
Ответ на: комментарий от SV0L0CH

Зря смеетесь, может быть, в авторе топика бьется сердце Piet-программиста.

Zhid ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.