Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 一般Web编程/设计问题:?_Php_Javascript_Ajax_Web Applications_Mootools1.2 - Fatal编程技术网

Php 一般Web编程/设计问题:?

Php 一般Web编程/设计问题:?,php,javascript,ajax,web-applications,mootools1.2,Php,Javascript,Ajax,Web Applications,Mootools1.2,我从事网络编程已有2年(自学成才——专业为生物学研究员)。我设计了一个带有所需功能的小wiki,当然,我们期待着一个科学的RTE。我使用了mootools框架 和AJAX 当我看到从URL传递的查询字符串时,我总是很好奇。直接传递到服务器的长加密查询字符串。尤其是谷歌的设计就是这样。我想这是向客户机提供Web服务的开始 现在,我的问题是:这是一种特殊的、高度专业的、高效的/高级的web设计技术,用于通过URL传递查询吗 我总是觉得直接的基于URL的交流更快。我尝试了一下,可以直接通过URL发送查

我从事网络编程已有2年(自学成才——专业为生物学研究员)。我设计了一个带有所需功能的小wiki,当然,我们期待着一个科学的RTE。我使用了mootools框架 和AJAX

当我看到从URL传递的查询字符串时,我总是很好奇。直接传递到服务器的长加密查询字符串。尤其是谷歌的设计就是这样。我想这是向客户机提供Web服务的开始

现在,我的问题是:这是一种特殊的、高度专业的、高效的/高级的web设计技术,用于通过URL传递查询吗

我总是觉得直接的基于URL的交流更快。我尝试了一下,可以直接通过URL发送查询。以下是链接: 通过这种方式,客户机可以直接链接到所需页面,而不是搜索和/或可以自动执行。有很多可能性

下一个要求是:我能指出这种网络编程技术吗? 对不起,如果我不能清楚地表达我的要求


Prasad。

我认为,本质上您所问的是查询字符串。在页面后面的url中,可能有一个问号,问号后面可能有url参数(通常称为GET请求参数)

通常,这将在服务器端进行处理。例如,在PHP中,可以使用以下内容:

$_GET['q']
上述代码将是变量的值。或者,要在客户端执行此操作,可以使用锚。用散列符号替换问号#

因为这用于锚定,所以当URL更改为具有锚定标记时,页面不会刷新。这允许完全由AJAX驱动的页面在不刷新的情况下操作URL。这种方法也经常用于支持AJAX页面的后退按钮

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

我认为这是提供服务的开始 我想是一个客户端的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-网页编程设计问题

这是一个特殊的,高度 专业、高效/高级网络 通信设计技术 通过URL进行查询


拥有一个可以访问应用程序中所有功能的集中页面是前端控制器模式的一部分,这是应用程序中的一种常见模式,通常作为整体模型、视图、控制器(MVC)模式的一部分使用。在MVC中,应用程序的关注点被划分为包含业务逻辑的模型。然后,控制器使用这些模型执行一组可以产生输出的任务。然后通过视图层将该输出渲染到客户端(浏览器、窗口管理器等)

这是使用前端控制器架构的结果。这完全符合wiki的概念,即使用相同的代码呈现多个不同的wiki页面——内容由数据定义

使用URL的查询部分作为页面选择条件并不是唯一的解决方案。e、 g.如果您使用的是apache,那么您可以实现:

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

(您需要添加自己的解析以获取值

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

采用这些策略没有特别的功能/性能原因。尽管建议在URL为幂等的情况下,每个页面都可以通过GET操作寻址(对于SEO也很有用)


C.

是的!!我期待着这个答案。我一开始并不知道MVC。但是,从你对MVC的出色总结中,我清楚地知道制作一个好的应用程序需要花多少时间。MVC看起来很有逻辑,而且根深蒂固。再次感谢你。你提到的映射示例也正是我努力想问的我的问题。这是否也意味着,从通信的方式来看,在这种类型的设计中似乎没有使用ajax?我说MVC中的控制器是与业务逻辑和客户机通信的管道,对吗?不,这些根本不排除ajax。ajax是一种将数据传输到服务器并接收响应的方式不更新整个页面,而只更新页面上相关的特定数据/区域。就您对MVC的定义而言,我想您可以这样说,但这些不是我会使用的术语。我建议您只需在谷歌上搜索MVC和Front Controller。将有大量信息、解释和示例:-)谢谢maz的回复。在某种程度上,我学会了GET和POST变量,并在工作中广泛使用它们。不过,谢谢你的解释。我不知道。哇!我遇到了支持Ajax页面的后退按钮的问题。我应该在我的维基上试试这个。感谢您提供的提示。不过请注意,我认为这并不能解决IE中的后退按钮问题。要实现后退按钮和#变量,您应该尝试dojo()中的dojo.back模块
http://sgwiki.sdsc.edu/getSGMPage.php?8
http://sgwiki.sdsc.edu/getSGMPage.php/8