个人资料
正文

技术上答问两则

(2008-02-26 07:43:00) 下一个
(这是以前----大约一年前在 XX 网站闲聊时回答某人的问题汇整而来的。那人想办个网站)

A) 技术上文学网站是怎样运行的------答北昼等关于网页的制作等
A1) CSS and XML
CSS (代表 Cascading Style Sheets 的意思) 你可以学点,当然最好在熟悉 HTML 标签 (TAG) 之后。CSS 本来就是为网页设计的,现在它的标准主要由 W3C 组织制定并且得到承认 (你可以参考 www.w3c.org),例如主要浏览器,如微软的 IE,Mozilla 的 Firefox (山人等以前说的什么浏览器,和QQ腾讯的 Traveler,等,实际上还是 微软的 IE,只是加了个外壳而已。IE 的许多性能直接来源于 Windows 操作系统,是捆绑在一起销售的),都支持它。学点 CSS 对设计网页还是有用的,而且,也容易 (虽然我没有设计过网页,呵呵),可以无师自通的。
实际上,CSS 是一种特殊的 XML,不过怎么样处理 CSS 你却无须担心,所以无须学 XML,因为 IE/Firefox 等参照 W3C 的规则,给你代劳了,为你打点了一切 (更具体一些,CSS 的格式就是我上次说的 XML Scheme),你学一个小时,就可以披挂上阵:)
XML Scheme 哪里是 CSS? 打个比方,Scheme 如果类比于 C 语言的话,那么 CSS 相当于用 C 语言开发的一个程序。只不过CSS 比较有用 (网页),通常的浏览器支持它而已。你学 CSS 可以完全不顾 XML (因为IE等已经将相应的开发完成了)。如真正要学 Scheme,那还得精通 Java (等) 编程语言才成 (因为你得自定义及开发相应的功能)。其实 Scheme/DTD 的主要功能倒不是在前台的网页制作,而是在后台 (服务器端) 的数据转换和控制 (例如有的 CAD 文件,对大公司来说,一个在俄罗斯的工程师设计的螺丝如果不分青红皂白地保存到在意大利的服务器,可能就会带来麻烦)。
至于网络里哪里有相关的中文入门“教材” (免费的),我还真的不知道,我平常不设计网页,也不看这样的书。也许 admin 等更加了解,给你推荐几个。

A2) 关于HTML网页的制作,等
概念上,最简单的是C/S模型 (Client/Server),Client 通常对应于前台 (Front End)---但是不完全等价---例如就 XX 文学网站来说,Client 就是大家的电脑,后台 (Back End) 通常指服务器,大家发的文章评论等都储存在那里。就商业软件来说,C/S模型过于简单,通常将整个系统劈为三部分,称为 3-tier 模型,亦即前台 (Front Layer),商业层 (Business Layer),和数据库 (Backend)。三层相互独立 (以便于维护),通常的所谓程序 (例如 Java,C,C++写的) 大抵在Business Layer,对比较复杂的软件,它往往有一万或者更多的程序文件。
可以将 XX 文学网站看成一个简单的C/S模型 (Client/Server)。假如你要开发它,那应该做些甚么呢?
a) 首先,你得熟悉 HTML 代码。所有的文章都是以 HTML 显示的。这个应该比较容易学;
b) 其次,要知道至少一门 Scripting Language,其中最常见的是 JavaScript (JavaScript 和 Java 是两码事)。这个也容易学。为什么需要它呢?原则上它并不必须,但是它是在用户电脑上运行的,可以代替服务器做一些简单的逻辑检测,极大地提高运行效率, 所以事实上几乎所有的 HTML 文件都有 JavaScript。举个简单的例子,假设系统处理注册用户,要求用户名不能重复,要求填上合理的出生年月。比如说某位作者填了 1881年或者 2010年出生,这显然不合常理,系统应该拒绝接受。那么应该在哪里拒绝呢?如果去服务器端检测,那么作者的所有信息得传送到服务器,服务器处理后再将处 理结果传送到用户电脑,而这完全没有必要的,因为1881年出生和服务器的数据库状态毫无关系 (这样的数据称为 Stateless 数据),直接在用户电脑拒绝即可;有的检测则必须送到服务器检测,例如重复笔名,JavaScript 就无能为力,因为如果我注册“北昼”的话,用户电脑根本不知系统有没有一个叫“北昼”的用户,必须送到服务器那里 (这样和数据库状态有关的数据称为 Stateful 数据)。所以说,原则上所有和系统数据无关的逻辑检测和处理都应该放在 JavaScript 里,以提高效率。
好了,有了这些,你就可以做静态的网页了 (HTML 文件,通常和数据库无关的网页,为静态网页)。这个很简单,也基本上能满足小型网站的需要。你如果想做得 fancy 一些,也可以学点 CSS (如前所言) 或者 XML,但是这并非必须。可以记住的是,CSS的处理器就是你的电脑的浏览器 (如 IE),和服务器没有关系,所以它在用户终端运行,很快,不会造成任何效率的影响。我去年帮一个熟人的医生朋友做了一个静态的网页,就只花了几个小时 (何况我对 HTML 不太熟,我用的是最原始的 Notepad 写的)

A3) 关于开发文学网站服务器
如果你要做文学网站(或者类似),需要进行数据读写,那上面的静态网页就不够了,因为它只能显示数据,不能处理数据。那需要怎么办呢?
a) 如果你租服务器,那具体情况具体分析,得找出租商咨询;
b) 如果你自己买个服务器,自己单干,那你需要如下准备 (只列出最主要的)
b1) 准备一个数据库系统。如果你的系统很小,可以用微软的办公室软件包里的 Access。但是它效率不好,不支持同步运行 /访问,所以不是好的选择。建议选用 MySql,它免费,其实很不错的了;如果你有钱,可以买商业软件,例如微软的 Sql*Server, Sybase,如果你很富裕,买甲骨文 Oracle;
b2) 设计数据库模型;
b3) 学会下面至少一种编程和相关的调试
b3-1) asp (active server page),如湘滨网站,具体请问 admin;装置一个 asp 的处理器,例如微软的 IIS。
这个估计是最简单的一种选择,但是请记住的是,微软的安全漏洞总是层出不穷的。利用IIS安全漏洞攻击服务器的例子不胜枚举,比如我,也知道攻击 IIS 的些许皮毛知识,呵呵。
b3-2) PHP;这个我不熟,但是和上面类似;
b3-3) JSP (Java Server Page),Servlet。目前国内的文学网站中, goovo.com 就是用JSP 写的。相同条件下,它比 ASP 更安全效率更高,但是,也稍微难一些。用 JSP 写的话,你得装个和 IIS 类似的东西,例如 JRUN (这个不免费),或者免费的 Apache + Tomcat (在www.apache.org 可以下载)。 Apache 是个网络服务器 (web server),由于安全,免费,它占据60%以上的市场;Tomcat 是个 JSP 引擎,专门处理你将写的 JSP 文件的。 (JRun,IIS 等也一样,只不过将 网络服务器,和 JSP 引擎/ASP 引擎 合二为一罢了,但是原理是一样的)。数据流程如下:

用户电脑<----- (英特网) ----> Apache <----> Tomcat <--你的JSP/ASP 文件程序<---(JDBC/ODBC)--> 数据库系统 (如MySql)

最后再说一句,通常用户在浏览器地址栏里经常可以看到asp、jsp 文件,(例如湘滨首页就是 http: //www.xxx.com/default.asp),这个 ASP 文件 (亦即default.asp) 是在哪里运行的呢?它和 HTML 有甚么关系?答案是:
ASP/JSP 在服务器上运行 (严格说来,ASP 在IIS上运行,JSP 在 TOMCAT 或者 JRUN 等 JSP 引擎上运行);
ASP/JSP 和 HTML 没有关系,只不过,ASP/JSP 通常将数据处理结果用 HTML 格式输出罢了 (如同 xx 网站)。如果有特殊要求,ASP/JSP 程序员完全可以将处理结果写成 *.txt 或者 *.doc 格式。然后服务器端的网络服务器 (web server,例如 Apache,IIS,JRUN等) 将处理结果送到用户电脑,用户电脑的浏览器 (例如 IE) 将接收到的数据翻译成大家所能看到的那个形式。

B)Windows XP 搜寻工具不正常工作时怎么办
我最近将自己的PC (Windows XP)操作系统升级到最新版本的Service Pack 2。当我象往常一样打开搜寻窗口搜寻电脑里的文件时,我发现搜寻不能正常工作了。比方说,当你选择某个目录按右键“Search”时,在“A word or phrase in the file” 里键入include搜寻哪些文件含有字符串include时,Windows竟然搜寻不出来,而我那个目录里显然有许多cpp-程序文件,里面有许多 "include"字符串。这显然是不对的。事实上,最新的Service pack 2搜寻工具只能对最常见的几种文件类型比如 *.txt, *.html 等识别,比方说如果你有一个文件名abc.txt里面包含了include,搜寻工具还是能搜寻得到的。

传统的Windows搜寻工具在搜索哪些文件包含特定的字符串时是很慢效率很低的。为了提高效率,XP搜寻过滤器将绝大部分文件类型都过滤掉了,包括微软 公司“自己”的文件类型例如*.doc, *.rtf等,而只搜寻最常见的几种“纯粹”的txt文件如*.txt, *.html。虽然这极大地加快搜寻速度,但是其造成的不方便也是很大的。最好的解决办法应该是微软让用户自己决定搜寻器应该过滤或者不过滤掉文件类型, 可是微软并没有提供这个 functionality (这也是我不解的地方,提供这样一个机制应该很容易的)。那么怎么样才能让搜寻工具对绝大部分文件类型都搜索呢?方法如下:

a) 修改注册表 (Registry)
a1) 点击 Start --> Run,键入 regedit,回车。Registry Editor 窗口弹出。
a2) 在Registry Editor 窗口选择路径 HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/ContentIndex,然后找到名称为 FilterFilesWithUnknownExtensions 的 registry,将其值改为 1。

b): 调试搜寻工具
b1) 点击 Start --> Search --> For Files and Folders。搜寻工具窗口弹出。
b2) 点击 Change Preferences
b3)点击 With Indexing Service (for faster local searches) (或者 Without Index Service,视你的设置而定)
b4). 点击 Change Indexing Service Settings (Advanced).
(在“Do you want to enable indexing service”中,你可以选择 Yes 或者 No。最好选择Yes,除非你的电脑比较旧)
b5). 点击 Show/Hide Console Tree 图标 (没有文字,只有一个图标表示)
b6). 选择 Indexing Service on Local Machine,按右键,选择菜单 Properties
b7). 选择选项 Index files with unknown extensions,点击 OK.
[ 打印 ]
阅读 ()评论 (0)
评论
目前还没有任何评论
登录后才可评论.