Nano Hash - криптовалюты, майнинг, программирование

Лучший способ включить интерактивный внешний контент на страницу (JavaScript, AJAX, jQuery)

Я собираюсь создать инструмент стиля виджета, который будет работать следующим образом:

  1. Его можно включить на любую страницу, поместив на эту страницу комбинацию скрипт/кнопка.
  2. Кнопка при нажатии загрузит форму с моего сайта, которую можно заполнить и отправить.
  3. В зависимости от предоставленной информации может отображаться другая форма — например, вторая страница с капчей, или страница подтверждения с требуемым действием, или, может быть, просто закрытие формы, или какое-то другое действие, которое я добавлю позже.

Если бы мне нужно было открыть всплывающее окно, это было бы легко, просто создайте его как обычную страницу. Однако включение этого на страницу вызова создает несколько проблем.

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

Мой другой вариант - сделать все это в iframe, поэтому на самом деле это не часть страницы загрузки страницы вызова. Таким образом, я чувствую, что теряю некоторые функции, которые могут мне понадобиться позже. Наверное, я все равно пойду этим путем.

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

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

Спасибо!

Изменить

Что касается вопроса JotaBe, на стороне сервера я буду использовать PHP.

Однако я почти уверен, что это не имеет значения, так как обработка PHP (как всегда) будет происходить на сервере. Все, что клиент (запрашивающая страница) будет знать, это то, что он запросил, а затем получил активы JS/HTML/CSS/JSON/ETC через HTTP. Он не будет знать или заботиться о том, как сервер сгенерировал эти ресурсы.

Если это поможет вам представить это, это основная идея того, как клиент и сервер (если я не придумаю лучшего способа) будут работать вместе:

  1. Страница клиента (при загрузке) запросит файл .js с моего сайта. Этот файл будет создан динамически на основе запрошенного URL-адреса. Например, учетная запись № 74 запросит http://mysite.com/widget/js/74.js и получит ресурсы JavaScript, настроенные для этой учетной записи.

  2. Когда нажимается «кнопка виджета», он будет использовать JavaScript для запроса HTML-формы с моего сайта и тем или иным образом включать ее на страницу (какой способ лучше всего - это весь вопрос). HTML-форма будет сгенерирована динамически и настроена для учетной записи № 74 на основе запроса (т.е.: http://mysite.com/widget/form/74.php).

  3. После заполнения пользователем форма будет отправлена ​​​​на мой сайт. Публикация будет обработана, и будут происходить вещи, опять же в зависимости от запрашивающей учетной записи (т. е.: action=http://mysite.com/widget/post/74.php). ). На этом этапе мне может потребоваться отклонить форму и запросить повторную публикацию из-за неудачной проверки, проверки по капче и т. д., или мне может потребоваться отобразить страницу подтверждения, или просто закрыть форму, или выполнить какое-либо другое действие.


  • Что на стороне сервера? Если вы используете ASP.NET MVC, вы можете сделать это, используя пользовательские элементы управления и отображая их с помощью AJAX. Ваша проблема не только на стороне клиента, и мы не сможем вам помочь, если вы не скажете, что на стороне сервера. 22.03.2012
  • Я бы выбрал iframe, если вы не используете AJAX для извлечения контента и отображения его на той же странице. Кажется, это именно то, для чего предназначен iframe. 22.03.2012

Ответы:


1

Как бы вы это ни делали (язык/платформа/и т. д.), лучше всего использовать mvc или hmvc, чтобы разделить различные логические компоненты приложения. Вы можете создавать всплывающие окна, используя некоторые шаблоны представлений, которые не отображают содержащиеся в них теги, предназначенные для операторов javascript/jquery .load(). Затем вы можете разработать ряд компонентов, предназначенных для загрузки с аргументами, передаваемыми через uri.

вот статья, которая может помочь объяснить один возможный шаблон проектирования для того, что вы собираетесь делать: http://www.phpied.com/ajax-mvc/

22.03.2012
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..