火种诞生开端

其实一开始的想法很简单,就是想将客户端的ajax移到服务器端来,可能我说完这句话你有些不理解,但他的原理其实就是这样,让服务器在Response给客户端一些信息的同时(一定要强调同时)程序在背后默默地做着另外一些事情,这和ajax很像,在看到信息的表面背后在执行着另外的somthing。这对于有ajax基础的读者并不陌生settimeout和setinterval就是做这类事情的,可是服务器端呢?如何实现呢?让服务器端定期做某事,搜索了一下都是用while 或者 for 的死循环来编写,这里就不贴出来了,大家感兴趣可以百度一下,这个循环的最大坏处就是cpu100%,目的达到了但是代价太大,此法一定是行不通的,后来搜索了一下,这种定期让服务器执行代码的功能几乎是很多程序员梦寐以求的,后来朋友介绍netbox的功能比较强大,下载了一个,确实有一个main.box的东西其功能相当于global.asa而且里面有一个server.sleep+毫秒的功能于是大喜,实验的时候果真可以暂短sleep,可是在server.sleep的同时客户端是不可以请求的,因为server真的sleep了,还是没有达到我的要求因为我想要的是客户端可以照常请求,而server还在定期的干活,遂找到了netbox的作者聊上了几句,说出了我的想法,被直接否定了,说这是不可能的。仿佛没有办法了,因为asp确实是单线程的。在理论上确实是不可能了,其实变通的办法很多,可以开开一个隐秘的客户端ajax的页面,这样服务器单独的为你这个页面请求而do something也是一种解决的办法,但是最大的缺点就是一旦客户端请求终止server也就停下了脚步,还有就是用计划任务执行vbs或者打开ie等,但这些都并非比较好的解决办法,因为他们都用太大的缺点,但我暂时不想放弃,这个问题实际就是解决问题的开门之匙,解决这个最大的难题成了首要问题,想实现类似setinterval的功能,又想cpu尽可能的低耗,又想像多线程那样不影响浏览者执行程序。仿佛用asp这是不可能的。真的不可能吗?不想放弃的话就跟我继续吧!
我的qq:674096197,欢迎一起探讨asp javascript 不在线请弹屏一下!
原文地址:https://www.cnblogs.com/329521/p/1654654.html