Форма, которая сохраняется в режиме реального времени. Практическая? - PullRequest
2 голосов
/ 16 февраля 2012

Я пытаюсь создать очень удобный пользовательский интерфейс для моего сайта. В настоящее время стандартом является использование клиентской и формальной проверки форм. Правильно? Мне было интересно, могу ли я просто отказаться от проверки на стороне клиента и положиться просто на стороне сервера. Проверка будет запускаться при размытии и будет использовать ajax. Чтобы сделать шаг вперед, я также планировал сохранить определенное поле в базе данных, если оно было проверено как правильное. Что-то вроде обновления формы в реальном времени.

Видите ли, я совершенно новичок в программировании. Так что я не знаю, может ли этот подход работать практически. Я имею в виду, будут ли проблемы со скоростью или соединением? Будет ли это сказываться на сервере в случае высокого трафика? Будет ли сайт тормозить по HTTPS? Есть какой-нибудь сайт, который это реализовал?

Кроме того, как мне кажется, мне понадобится отдельный PHP-скрипт для каждого поля! Есть ли более короткий путь?

1 Ответ

2 голосов
/ 16 февраля 2012

То, что вы хотите сделать, очень выполнимо.Фактически, это стандартная функциональность, которую вы получили бы, если бы использовали JSF с богатой структурой компонентов, такой как ICEfaces или PrimeFaces.

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

Фреймворки PHP могут сделать этот процесс менее обременительным, но я не использовал их и рекомендовал бы сначала избегать их, пока вы не освоитесь.Магия, которую предоставляют такие системы, как Cake или Rails, очень полезна, но вы должны понимать компромиссы и лежащую в основе технологию, иначе будет очень сложно построить надежные системы на их абстракциях.интуитивный.С одной стороны, обработка больших заявок - это больше работы, чем обработка меньших.Возможно, вы заменяете один большой запрос несколькими крошечными для получения чистой прибыли.Это будет зависеть от того, какую работу вы должны выполнять с каждым полем формы.Например, автоматическое завершение намного дороже, чем проверка уже введенного имени пользователя, что обходится дороже, чем, скажем, проверка того, что некоторая строка на самом деле является числом или какой-то другой очевидной проверкой.

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

Раньше можно было ожидать, что ваш сайт будет работать примерно на 1/3 быстрее при использовании SSL.У меня нет актуальных номеров, но они всегда будут дороже, чем незашифрованные.Это просто больше работы.Настройка SSL также не доставляет большого удовольствия.Большинство сайтов, над которыми я работал, либо помещали все это под SSL, либо делили сайт на какую-то корзину покупок, которая была зашифрована и оставила остальные в покое.Я не стал бы тратить чрезмерную энергию, пытаясь оптимизировать это.Если вам нужно шифрование, используйте его и продолжайте свой день.

На вашем этапе игры я бы не стал слишком много спать из-за производительности. Поскольку вы совершенно новичок, сфокусируйтесь на процессе обучения, попробуйте реализовать функции, которые, по вашему мнению, будут приятны, и стремиться к улучшению. Легко зацикливаться на производительности, но вы не будете иметь такой трафик, который будет давить вас на долгое время, если только половина планеты не захочет купить ваш продукт, а ваш сайт будет чрезвычайно тяжелым, а ваш хост - чрезвычайно слабый. Когда это произойдет, вы должны профилировать свой код и найти, где вы делаете слишком много работы, и исправить это, и вы получите гораздо больше, чем если бы вы попытались спроектировать заранее эффективную систему. У вас просто недостаточно данных для этого. И большинство серверов в наши дни далеко не в состоянии справиться с довольно большой нагрузкой - вероятно, в ближайшем будущем вам не придется поддерживать сотни посетителей в секунду, и потребуется гораздо больше, чем это, чтобы снизить производительность VPS за 20 долларов. довольно простой сайт PHP. Учтите, что один посетитель в секунду обрабатывает около 80 000 обращений в день, вам нужно 8 миллионов обращений в день, чтобы достичь 100 в секунду. Вам не понадобится целая секунда для отображения страницы, если вы не сделали что-то глупое. Что мы все делаем, несколько раз, когда мы учимся. :)

Удачи в вашем путешествии!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...