淘客熙熙

主题:【讨论】铁手兄还有各位 IT 高手请进来,讨论动态网页问题。 -- landkid

共:💬8
全看树展主题 · 分页首页 上页
/ 1
下页 末页
家园 【讨论】铁手兄还有各位 IT 高手请进来,讨论动态网页问题。

动态网页中,一般浮动 DIV里的内容是预先有的。

DIV的内容需要动态LOAD 的解决办法。

动态内容 。。。。那可不容易。我设想了一下,有两种可能性,

1。所有的说明文字加起来也不多,完全放入内存。

在本页加载前,先把所有可能需要显示的所有字符串全都读入。

需要的时候,就可以从内存中调出来显示。

这时候,点击的地方可以用一个小小的 javascript 命令显示出来,

而并非一个链接。本页面也不用刷新,仅仅是本页面的动态显示而已。

所谓静态内容,动态显示,仅仅是静态内容多了点儿。

方法,先用 ASP 命令读取某个固定的 txt 文件或者 asp 文件,

读取内容,用作备用。页面上的点击是 <div> 方式,而非链接。

或者用 html 的 include 命令也可以。

优点,不需要刷新,缺点,最好不要太长,否则调取太慢了。

架构是 ASP 的 也可以不是, 大概思路如下:

<%

string1= fread(help1.txt);

string1= fread(help2.txt);

string1= fread(help3.txt);

%> ------(这一段可以用 html include 包含,效果一样)

<div>

<%

if(help=1)

write(string1);

if(help=2)

write(string2);

if(help=3)

write(string3);

%>

</div>

2。完全动态,每个论坛都有不同的各自的帮助说明,各不相关

每个说明都很长,要求完全的独立。

在本页加载前,不把所有可能需要显示的所有字符串全都读入。

比如一个 help.asp 页面,没有参数则什么都不显示,仅仅提供选择菜单。

需要的时候,点击的地方可以用一个 help.asp?help-list=1&help=2

这样的命令来实现,然后页面刷新一次,在本个 help.asp 页面中

先用 help-list=1&help=2 参数调取所需要的 某个固定的 txt

文件或者 asp 文件, 然后再用 html 显示出来。

这样,点击的地方是一个链接,本页面必须刷新了,因为是链接么。

方法,本页面不接收到 help-list=1&help=2 参数 则什么也不干,

接收到 help-list=1&help=2 参数,则读取 txt 文件或者 asp 文件

优点,可以有七八十个 help 文件也不妨,反正每次读取仅仅一个而已。

缺点,必须刷新。看起来不爽。

架构也是 ASP 的, 大概如下:

<%

if(help=1)

stringhelp = fread(help1.txt);

if(help=2)

stringhelp = fread(help1.txt);

if(help=3)

stringhelp = fread(help1.txt);

%>

<div>

<%

write(stringhelp);

%>

</div>

这个思路,单纯用 javascript 是做不到的。

javascript 是静态内容动态显示,而现在要求的是动态内容,

我觉得 javascript 是做不到的。我觉得是不可能写出来

<span class=open1 OnMouseOver="fopen('help1.txt'); fread('help1.txt'); display=yes"> **** </class>

这种命令的。

除非用 include 把所有的help.txt 全都包含进来,那就是第一种思路了。

家园 看的有点晕。理论上讲,你的Logic只能发生在两个地方:

Client Side 或是 Server Side.

1) 在Client side的操作一般可以由Javascript来做。其优点是不需要refresh page,不需要跑回Server去(save server-client round trip)取东西。但缺点是要显示的内容必须已经传到了Client Side (TXT ,Image or whatever),如果数据量比较大就不太好。如果数据很重要的话,安全上也有些问题。

2) Server Side的方式需要在Browser和Web Server间跑来跑去。即使是对于小的操作会有比较大的时间延迟,更新内容需要refresh page 或是frame,不够smooth。但是它可以执行更复杂的运算(比如数据库操作),另外它对用户端要求也比较低(比如不需要用户的Broswer支持JavaScript).

3)如果你使用Java Applet,那倒是可以动态内容动态显示。也不用Refresh page或是Frame。Applet可以根据用户的Action动态显示相应的内容(event-driven)。这些内容可以事先全部传到Client Side,也可以在需要的时候再从Server Load(比如通过TCP/IP).

你是要讨论这个问题吗?

家园 Highway兄说的很在点.

我是凭经验考虑各种方案,没考虑到理论上。

铁手兄问我动态网页上的 DIV 中内容显示,但是内容本身是

动态要从 Server 端读取的。我研究的结果是用 javascript

这样的 Client 端这么着是做不到的,除非用 ASP/PHP 这样

的服务器端编程。

而如果预先全读进去,那么可以不用到 ASP/PHP 而仅用

javascript , 优缺点如 highway 兄所言。

我想和大家探讨探讨。看看我的想法对不对。

铁手兄看到我的帖子,进来多说说他的想法,出主意的就是

大家,而不是仅我一个了。

家园 用HTML和C Sharp就足够了,偶现在不用JS了。

客户端编程现在几乎都要被淘汰了。

无论实现什么功能,用ASP.Net都很方便。C#是一种很有前途的语言,所以偶也不用VB.Net了。偶尔偶会加些Java Applets。这爪哇小程序还是很强大,颇有用处的。

家园 客户端编程现在几乎都要被淘汰了 -- 我不这样认为。

有些事情Client Programming效果更好。比如Drowdown menu navigation,client input validation, 一些nice的GUI effect等等。JS可以节省server-client round trip,使得程序反应更快,更sleek。

从Architecture角度来讲。一些操作放在client side可以减轻server load,增加server的scalabity。这是分布式处理的一个精髓。

微软有不少文章讲解如何结合server side C#/VB.NET和client side JS。值得看看!

家园 思路是这样的:点击某处后,所点击处调用一个ASP来动态取得内容

显示在某一个DIV内。这样,页面本身是不用刷新。

比如 xxxxxxxx 点击后,调用a.asp输出内容到某个DIV来显示。

静态的情况下,可以使用

<script language="JavaScript1.1" src="xxxx.asp"></script>

动态的情况下,怎样使用这个src?

家园 我觉得, 做不到, 要求不刷新, 就不能从服务器上

搞到任何信息, 除非动用 java /EJB 这类东西。

要不然,就事先都打开过了存在内存里,

要不然,就要刷新。

静等大家的意见。

家园 这段代码也许会有些启发

if(obj2.loaded=="no"){objtd.innerHTML="下载中...";document.frames["hiddenframe"].location.replace("Sm.asp?id="+id);}

其中的hiddenframe是iframe。

不过,现在我觉得也没什么必要了。如果你有兴趣,也许可以了解一下。我对JAVASCRIPT不熟悉。

全看树展主题 · 分页首页 上页
/ 1
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河