2010-04-01 70 views
3

我已经在网络编程2年(自学 - 一个专业的生物研究员)。我设计了一个具有所需功能的小维基,并预计会有科学的RTE。我广泛使用了mootools框架 和AJAX。一般网页编程/设计问题:?

当我看到从URL传递的查询字符串时,我总是好奇。长的加密查询字符串直接传递给服务器。特别是Google的设计就是这样。我想这是向客户提供Web服务的开始 - 我想。

现在,我的问题是:这是一种特殊的,高度专业化的,高效的/先进的网页设计技术,通过URL进行通信查询?

我总是觉得直接的基于URL的通信更快。我试了一下,可以直接通过URL发送查询。这里是链接:http://sgwiki.sdsc.edu/getSGMPage.php?8 由此,客户端可以直接链接到期望的页面而不是搜索和/或可以自动化。有很多可能性。

下一个请求:我可以指出这样的Web编程技术吗? oops:对不起,如果我无法清楚地传达我的请求。

Prasad。

回答

1

我认为这是向客户端提供 Web服务的开始 - 我想。

没有不是真的,虽然它可以。它曾经是整个应用程序的中心入口点。这是一种常见的做法,有各种好处,但显然不是必需的。通常情况下,虽然即使是普通的url,你也可能不会真正成为应用程序中的物理页面。路径的每个部分都可能通过服务器端的重写和路由实际映射到变量。例如这个问题的URL:

http://stackoverflow.com/questions/2557535/general-web-programming-designing-question

可能会映射到像

http://stackoverflow.com/index.php?module=questions&action=view&question=2557535&title=general-web-programming-designing-question

这是一个特殊的,高 专业,高效的/先进的网络 设计技术沟通 通过URL查询?

具有供一个应用程序内的所有功能进行访问是前端控制器花纹的一部分的集中页 - 在应用程序中常见图案通常用作整体模型,视图,控制器(MVC)模式的一部分。在MVC中,应用程序的关注分为持有业务逻辑的模型。这些模型然后被控制器用来执行一组可以产生输出的任务。这个输出然后通过视图层呈现给客户端(浏览器,窗口管理器等)。

+0

是啊!我期待着这个答案。我并不知道MVC。但是,从您对MVC的精彩总结中,我清楚在哪里花费时间来制作出好的应用程序。 MVC看起来非常合乎逻辑并深入人心。再一次感谢你。你提到的映射例子也正是我在努力提出的问题。 这也意味着,从沟通的方式来看,这种类型的设计似乎没有ajax用法? 我是否正确地说MVC中的Controller是与Business Logic和Client进行通信的管道? – Prasad 2010-04-01 01:47:42

+0

没有这些不排除阿贾克斯在所有。Ajax是一种将数据传输到服务器并接收响应而不更新整个页面的方式,而只是更新相关页面上的特定数据/区域。至于你对MVC的定义,我想你可以这样说,但那些不是我会用到的术语。我建议你只需Google for MVC和Front Controller。这将是一个丰富的信息,解释和例子:-) – prodigitalson 2010-04-01 13:43:31

1

我认为基本上你问的是查询字符串。在一个页面后,URL,可能会有一个问号之后,可能会有URL参数(一般称为GET请求参数)

http://www.google.com/search?q=URL+parameter 

一般来说,处理这将是在服务器端完成。例如,在PHP中,可以使用以下内容:

$_GET['q'] 

上述代码将是变量的值。或者,为了做到这一点客户端,可以使用锚点。将问号替换为散列符号#

由于这是用于定位点的,因此当URL更改为具有定位标记时,页面不会刷新。这允许一个完全由AJAX驱动的页面来操纵URL而不刷新。此方法通常也用于为AJAX页面启用后退按钮支持。

在JavaScript中,可以使用onload处理函数作为读取页面URL并获取URL哈希部分的机会。该页面然后可以向服务器发送请求以读取任何必要的数据。

+0

感谢maz的回复。我在某种程度上学习了GET和POST变量,并在我的工作中广泛使用它们。 但是,感谢您解释的#部分。我不知道。哇!!我有Ajax Pages的后退按钮支持问题。 我应该试试这个为我的维基。谢谢你的提示。 – Prasad 2010-04-01 01:52:03

+0

虽然被警告,我不认为这修复了IE中的后退按钮问题。为了实现后退按钮和#变量的稳定实现,您应该尝试Dojo中的dojo.back模块(http://dojotoolkit.org/) – Maz 2010-04-01 12:36:38

0

这是使用前端控制器架构的结果。这符合维基的想法,其中相同的代码用于呈现多个不同的维基页面 - 内容由数据定义。

对页面选择标准使用URL的查询部分不是唯一的解决方案。例如如果你使用的是Apache,那么你可以实现:

http://sgwiki.sdsc.edu/getSGMPage.php?8 

http://sgwiki.sdsc.edu/getSGMPage.php/8 

(你需要添加自己的分析来获取值出

或者,你可以使用mod_rewrite将组件从路径映射回查询

采用这些策略没有特定的功能/性能原因虽然建议, URL是幂等的,每个页面都可以通过GET操作寻址(对SEO也很有用)。

C.