2012-03-21 66 views
0

我将要创建一个widget风格的工具,将工作方式如下交互式外部内容:最好的方法包括在页面(JavaScript中,AJAX和jQuery)

  1. 它可以包含在任何页面通过在该页面上放置脚本/按钮组合。
  2. 按钮,点击后,会从我的网站加载一个表格,可以填写和提交。
  3. 根据提交的信息,可能会显示另一个表单 - 例如,带有验证码的第二页,或者需要某个操作的确认页,或者可能只是表单关闭或稍后添加的其他某个操作。

如果我打开一个弹出窗口,这很容易,只需将其构建为常规页面即可。但是,将其包含在调用页面中会出现一些问题。

如果我实际上将表单内容加载到调用页面上的本地div,它将成为页面内容的一部分。我知道我可以在一定程度上使用脚本处理这些内容(它会从我的站点为该特定版本的小部件加载脚本),重新发布表单并将它们加载到同一个div中,当我完成时隐藏div它等等,但它似乎会使事情复杂化。

我的其他选择是让所有这些都发生在iframe中,所以它不是加载页面调用页面的一部分。这种方式我觉得我失去了以后可能需要的一些功能。无论如何,这可能是我的方式。

但是,在我开始走下这条路之前,我想我会问是否有人有任何提示将最复杂的一系列页面包含在另一个页面中?不管我做什么,我都想确保我没有关闭改变小部件功能方式的能力,我肯定会在稍后添加功能 - 所以保留我的选项以便改变是很重要的。

谢谢!

编辑

关于JotaBe的问题,在服务器端,我将使用PHP。

但是,我非常确定这并不重要,因为PHP处理将(一如既往)发生在服务器上。所有的客户端(请求页面)都会知道它请求了,然后通过HTTP接收到JS/HTML/CSS/JSON/ETC资源。它不会知道或关心服务器如何生成这些资源。

如果它可以帮助你,虽然图片吧,这是一个如何在客户端和服务器(如果我没有想到更好的办法)一起工作的基本思路:

  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. 一旦由用户填写,表单将提交到我的网站。该职位将被处理并东西会发生,再根据请求的帐户(即:行动= HTTP://mysite.com/widget/post/74.php)。此时,我可能需要拒收表单并要求重新发布验证失败,验证码验证等,否则我可能需要提供确认页面,或者只需关闭表单或其他操作。

+0

有什么在服务器端?如果您使用ASP.NET MVC,则可以通过使用用户控件并使用AJAX来显示它们。你的问题不仅仅是在客户端,如果你不告诉服务器端有什么问题,我们不能帮你。 – JotaBe 2012-03-22 00:02:55

+1

我会去iframe,除非你使用AJAX来提取内容并将其显示在同一页面上。这看起来就像iframe设计的那种东西。 – 2012-03-22 01:23:16

回答

0

你做的任何方式这(语言/平台/等),最好的做法是使用MVC,或HMVC,保持应用程序独立的各种逻辑组件。您可以通过使用一些视图模板来创建弹出窗口,这些视图模板不会呈现其包含的标签,这些模板是为javascript/jquery .load()语句而设计的。然后,您可以设计一系列组件,这些组件被设计为通过uri传递的参数加载。

这里是一篇文章,这可能有助于解释一个可能的设计模式为你打算为: http://www.phpied.com/ajax-mvc/

相关问题