2013-09-29 190 views
-4

让我们来看看reddit,例如人们创建我们说的帖子。每个创建的帖子都有自己的html页面,您可以在其中看到评论等。动态创建html页面?

我对如何创建这些页面感兴趣,我假设当用户创建帖子时,帖子被授权时,其页面会自动创建,但我不知道这是如何完成的。所以我的问题是:这是如何完成的,或者我完全错了整个概念,如果是这样 - 那么做到这一点的最好方法是什么(为数据库中授权的每个帖子创建单个html页面)?

+0

https://en.wikipedia.org/wiki/Dynamic_web_page – mb21

回答

1

当用户发布表单时,action中指定的页面将查看登录用户的帐户,确定他们拥有的权限,并保存帖子或呈现拒绝消息。

这是通过数据库完成的,因此将有一个user表(包含用户及其登录凭证)和一个post表(包含帖子)。后者可能会将created_user_id作为外键添加到用户表中,以便每个帖子都拥有一个所有者。

这是如何在内部组织的取决于网站的功能以及程序员如何实现它。因此,您可能可能也有一个permission表,其中描述,为每个用户,他们被允许做什么事情。这与Stack Overflow特别相关,根据您的声誉得分赋予(或删除)权限。

创建的每个岗位都有自己的网页上,你可以看到,是动态创建的每一个页面的评论

是的,但是记住。这些(通常来说)不是作为静态文件存储在磁盘上的:对于给定的页面类型,脚本用于呈现应该看到的内容。因此,如果有故事和评论,则检查URL,在数据库中找到正确的故事,在数据库中找到相关注释,然后将包含这些内容项的必要HTML呈现为脚本输出。

像Reddit这样的大型网站也会使用各种缓存策略(对于单独的碎片和整个页面),但上述内容是它的要旨。

3

您可能想要了解更多关于基于PHP,Python,Perl(以及许多其他)自动生成HTML代码的编程语言的服务器端代码(基于许多因素,包括用户会话,数据库中的一些数据等),并将这些动态生成的html代码作为页面源发送给客户端。