查看原文
其他

2020年了,居然还有人在用asp

Zero 程序员零距离 2022-04-23
(给程序员零距离加星标,零距离了解项目开发.)

事件起因

近日,一个风和日丽的上午,忽然接到老大安排的一个任务:给一个asp的小项目添加判断文件是否存在,如存在就跳转显示的功能

嗯...是的,你没看错,不是php、也不是asp.net,就是asp,可能有些年轻的小伙伴们都不知道asp是啥了,毕竟懂ASP开发的应该都是7080后了吧~~ ̄▽ ̄

下面给大家xue微科普下:

ASP是Active Server Page的缩写,意为“活动服务器网页”。ASP是微软公司开发的代替CGI脚本程序的一种应用,它可以与数据库和其它程序进行交互,是一种简单、方便的编程工具。ASP的网页文件的格式是.asp,常用于各种动态网站中。ASP是一种服务器端脚本编写环境,可以用来创建和运行动态网页或web应用程序。ASP网页可以包含HTML标记、普通文本、脚本命令以及COM组件等。

百度百科

以上来自百度百科,简单的说ASP就是微软很久之前开发的一个曾经很流行web脚本应用,但因为计算机发展太快,已经不能满足现代高并发,大数据量的需求了,所以现在基本已经没落了。

那么,重点来了!为啥我们还在用呢?

领导的心思怎么能是我们想问就能问的,所以只能脑补下,领导可能是这么想的:

  • 这样能显示出来我们的公司历史比较久远(06年)!

  • 可能当时只会asp....

额...偏题了,言归正传,开始干活!

关键词ERR_INVALID_REDIRECT

这功能随意写个小函数不就行了么?这有什么难度,虽然咱asp是个野路子,但还不是小case么

三下五除二,搞定!代码如下:

Function CheckFile(FilePath) Dim fso FilePath=Server.MapPath(FilePath) Set fso = Server.CreateObject("Scripting.FileSystemObject") If fso.FileExists(FilePath) then CheckFile = True Else CheckFile = False End if Set fso = nothingEnd Function

兴冲冲就加了个判断代码,开始测试

dim filepathsfilepaths="/a/"&id&".htm"
if CheckFile(filepaths) thenResponse.Redirect "http://test.jb51.net"&filepathsResponse.Endend if

这不就实现了吗?正在得意时,没想到浏览器童鞋直接给泼了盆冷水

额( ̄□ ̄;),大意了,不敢耽误,赶紧调试下

打开IIS中asp的调试,将错误返回至浏览器,刷新浏览器,结果依然让我惊喜

这是什么鬼,我特么。。。(以下省略十万八千字了,提醒自己认真点,继续调试,一顿操作之后

行吧行吧,野路子果然是个野路子,还是不行,我是解决不了了,总有人能解决,还是向老大请教下,该问就问,这是个学习的好习惯。

老大老大,帮忙看看这是啥情况,我感觉代码没写错呢。

代码和截图打包给发过去,10秒后,老大回复:你用谷歌浏览器调试!

不敢耽误,立马打开谷歌调试,果然,不一样了...

关键词ERR_INVALID_REDIRECT,明显是跳转地址有问题,输出下

if CheckFile(filepaths) thenResponse.Write filepathsResponse.EndResponse.Redirect "http://test.jb51.net"&filepathsResponse.Endend if

咋输出绝对路径了呢?CheckFile函数的问题于是开始搜索各种解决办法,正抓头呢,老大回复:“找到原因了吧,你这排错能力有点差啊。

赶紧老实交代:“找到出错的地方了,但不知道为啥会出错。”老大二话不说,给发来个网址:https://www.jb51.net/article/1339.htm

核心内容如下图:

ByVal是传递值 源数据不会被修改,你可以把这个值当作自己的局部变量来使用;

根据提示,成功将CheckFile代码修改为

Function CheckFile(ByVal FilePath) Dim fso FilePath=Server.MapPath(FilePath) Set fso = Server.CreateObject("Scripting.FileSystemObject") If fso.FileExists(FilePath) then CheckFile = True Else CheckFile = False End if Set fso = nothingEnd Function

测试,完美解决问题。

自我反省

笔者这野路子asp缺乏对细节知识的掌握,简单的一个小错误,半天都没发现问题所在,学习语言还是需要系统的学习方能掌握的比较全面。好了,不说了,我要补习去了~

文章精选1、让开发效率“飞起”的VS Code 插件2、2020年这些正则表达式应该被收藏3、Vue超好玩的新特性:在CSS中引入JS变量

更多精彩等待你的发现
点分享点点赞点在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存