问题的引入:
我们在vs2010等编辑器中,进行一个简单的加法计算器的编写。会发现一个现象,就是如果在form中编写的代码,是可以不用Button按钮的,可以做到边输入边求和。但是我们如果在Web页面里面的话,这样就做不到了,我们往往需要按一下回车才会执行,把鼠标移开才会执行(在textchange时间的属性AutoPostBack设置为true)。甚至在一些浏览器中压根打不开。我们必须在页面中添加一个button按钮才能做到求和的效果。
按button后的现象:
我们会发现页面刷新了一下。这是因为将数据传回了服务器的结果(这个时候,我们可以在页面的右下角发现一个服务器的图标)。
之所以会这样,是因为浏览器只认识:HTML、CSS、JavaScript,它不认识C#代码,也就无法执行C#代码。
但是我们想要执行C#代码,这部分代码必须得传到服务器,然后在服务器上执行这段代码,执行完后,再传回给浏览器。
为什么微软不把C#做得使其再web、form中的功能一样呢?
因为这样会浪费大量的带宽,我们还是拿边输入边求和的例子来讲。假设C#再web中也做到了边输入边求和,这样也就是说要做到不断地将数据从浏览器传到服务器,再从服务器传到浏览器,这样就需要很多的带宽。避免过多地和服务器之间进行交互。这也是为什么我们在C#在form中的功能比在web中强大了。
为什么需要服务器?
因为在B/S里面,服务器的计算能力是大于浏览器的,这就使得我们大量的计算是需要服务器来进行的。
为什么大家都在刷网课的时候,速度会那么慢?
1、网络带宽的原因
访问服务器网络带宽不够。
2、网络接收窗口的个数不够
服务器接受的能力受到限制。
这也是为什么阿里、腾讯的软件用着不卡的原因。