我在IWForm1上放置一个IWEdit1和一个IWButton1
IWButton1的点击事件如下:
procedure TIWForm1.IWButton1Click(Sender: TObject);
begin
 if IWEdit1.Text='' then
  WebApplication.ShowMessage('不能为空字符');
end;
程序运行后点击按钮。为什么判断时,网页会刷新一下,然后再弹出那个提示框?难道必须刷新一下吗?这样不是增加了网络流量了吗?

解决方案 »

  1.   

    的确是要'刷新'页面的。
    IntraWeb大量使用了<Form>来存储数据,控件事件相应全部需要提交到服务器端,服务器端再生成数据发送回客户端,这样就模拟了应用程序的事件相应机制。
    IntraWeb不大适合开发大型的B/S开发,正如你所说的,网络流量是非常大的。在本地测试的时候一切都很美好,但投入运行之后会非常的缓慢(你可以用IntraWeb的限速模式调试看看)。
    如果要用Delphi开发B/S构架的程序,建议核心部分使用WebBroker写,前台调用使用ASP(X)或静态网页。这样既能保证效率,又能见效流量和服务器负担。当然intraWeb并不是一无是处,后台管理程序就可以用它做,因为后台管理使用的只是有限的一个或几个管理员而已。