我是真正的初学者,并尝试了解事情如何发挥作用,然后开发东西,现在我无法前进,直到有人给我一个关于下一个问题的一些细节的准确答案。
我们假设有一个包含php代码http://example.com/blablabla
的页面,其上的链接就像http://example.com/blablabla?file=number_1
一样用于修改此页面的某些部分
我真正不知道的是当来自此页面的请求时,来自http://example.com/blablabla
的已加载脚本会发生什么 - http://example.com/blablabla?file=number_1
问题实际上是:
每次请求?file=number_1
时是否处理已加载页面的代码?
对我来说这似乎很奇怪,'因为如果第一个http://example.com/blablabla
通过php我选择了例如来自数据库的大量数据并且只想用?file=number_1
修改页面的一小部分,为什么我需要服务器再次处理对数据库的请求。
我的经验告诉我服务器再次处理已加载的代码, 但根据这个我有一个非常轻微的假设,我不是很确定这一点,但它似乎很合乎逻辑:
真正的诀窍是第一页中的代码有一个VARIABLE,其值已更改
通过第二个请求,所以我假设服务器看到此更改并仅使用此VARIABLE修改代码的那部分 - 例如http://example.com/blablabla
中的代码看起来像这样
<?
/* some code above */
if (empty($_GET['file'])) {
/* do smth */
} else {
/* do smth else */
}
/* some code below */
?>
使用请求http://example.com/blablabla?file=number_1
,服务器仅处理原始代码的一部分,仅包括已更改的$_GET['file']
变量。
这完全是我的想象还是以某种方式说明了一点? 请有人向我解释一下。非常感谢。
答案 0 :(得分:0)
HTML是一种静态语言。有php和其他类似的语言允许你有动态页面,但因为它仍然必须以html格式发送所有内容,你仍然需要获得一个新的页面。
?file=number_1
只是向页面发出get请求,为其提供更多信息,但页面本身仍然需要重新运行才能更改信息并重新发送新的静态html页面。
可以使用PHP或其他类似语言中的更高级编程来缓存数据库查询,以便服务器不必重新查询数据库,但页面本身仍然必须完全重新运行
有更多高级方法允许客户端操作数据,但是从您的示例中我相信页面正在服务器端重新运行get请求并且正在发送新页面。
我相信这就是你的要求。
答案 1 :(得分:0)
主要的一点是,我错误地希望如果页面被加载并因此缓存在计算机内存中,附加的QUERY STRING到此URL将发送新的get请求,但检索到的响应将部分影响此页面完全重新运行。
现在我必须重新考虑我的构建策略 - 从每个请求的URL加载尽可能多的数据。
答案 2 :(得分:0)
如果您正在寻找动态编辑页面的方法,请使用JavaScript。 如果您需要运行代码服务器端,无形地运行客户端,请使用PHP。 如果您需要动态加载内容,请使用AJAX,这是JavaScript的扩展。
我希望有所帮助。