2012-04-20 3 views
0

В настоящее время я создаю структуру приложения, которую я могу использовать с различными приложениями. Структура написана на PHP и имеет RESTful API. Я хочу, чтобы среда включала одностраничные приложения, используя комбинацию jQuery и моего API.SPA без backbone.js

Я искал backbone.js, но проблема, с которой я столкнулся, и некоторые другие - это то, что вы по существу дублируете свою бизнес-логику в js. Это не только эффективно удваивает размер вашей кодовой базы, но и представляет угрозу безопасности. Дублируя свою бизнес-логику в js, вы показываете всему миру, как выглядит ваш back-end, что значительно облегчает работу с вредоносными пользователями.

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

ответ

0

Если вы используете REST для обновления своей модели через JSON, у вас действительно не будет в два раза больше кода в приложении. Это действительно зависит от того, сколько работы вы хотите сделать на клиенте и сколько на сервере. Если вам нужна базовая форма проверки, вам придется писать ее как на клиенте, так и на сервере.

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

+0

Что касается объема бизнес-логики, у меня есть целый набор классов на внутреннем сервере и из того, что я могу tell, backbone.js требует, чтобы вы переопределили те же классы в интерфейсе. Что касается работы, которую я хочу сделать в интерфейсе, я хочу, чтобы одностраничное приложение динамически контролировалось через js, что намного сложнее, чем просто проверка формы. И просто отправка недопустимых данных не будет раскрывать ни одну из моих логических функций, она просто возвращает ошибки. –

+0

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

+0

Я думаю, вы неправильно поняли, что я пытаюсь сделать. Я пытаюсь найти способ достижения одностраничного приложения без использования backbone.js, потому что для этого потребуется, чтобы я дублировал мой внутренний код в js. Честно говоря, я даже не уверен, о чем вы говорите в своем предыдущем комментарии. –

0

Я создаю и используя следующую структуру для моего SPA-х:

├── ajax //~ function calls, posted data must be on the same server 
├── html //~ webroot 
│   ├── css 
│   ├── fonts 
│   ├── images 
│   ├── js //~ js files, including jquery,init,functions,admin,etc. 
│   └── uploads 
    |_ index.php,.htaccess 
├── includes //~ config,functions,router,index.html-the template 

Это является SEO-дружественные, SPA рамки, которые я думаю (надеюсь?) Вполне безопасно Все Ajax звонки проверяются размещены на исходный сервер Я надеюсь, что кто-то это увидит и имеет некоторое представление о том, что я делаю что-то нагло ошибочное

 Смежные вопросы

  • Нет связанных вопросов^_^