题记:用“易语言.飞扬”(EF)开发WEB应用程序,此前还没有先例。但因为EF本地开发包(EFNDK)已经发布,用C/C++开发一个EF类库,使其支持EF开发WEB应用程序,应该并非难事。当然也可想而知,其中必有诸多难点有待解决。此系列文章,为本人探索过程之记录,对外人未必有多大价值。如有网友乐观其事,还请理性待之。作者:liigo。转载请务必注明出处:http://blog.csdn.net/liigo/。在线留言。
试用EF开发WEB应用程序(4): 缓存Query String
上一篇文章已经讲过了如何读取Query String。今天继续讲 Query String 相关的优化措施。
在 CGI / FastCGI 程序中,Query String是最重要使用最频繁的参数,其对进行的主要操作有:1、从环境变量中读取Query String;2、对Query String进行URL解码;3、从Query String中解析出指定名称的参数值。这三项操作都相对比较耗时,而且最常见的第3项操作还分别依赖于前面2项的操作。
在“易语言.飞扬”类库 fastcgi.efn 中,我对 Query String 进行了专门的优化,有效提高了程序执行效率。优化的主要措施是缓存:在每个请求(Request)期间,最多只从环境变量中读取一次,最多只进行URL解码一次,最多只解析解码后的Query String一次——同时将解析结果放入哈希表中,进一步提高检索效率。(有一个实现细节也许有必要指出,我这里使用的哈希表,在比较文本时是区分字母大小写的,这要求用户使用时也要注意区分参数文本的大小写,否则将得不到正确结果。我想这不是很苛刻的要求,因为无论是C/C++还是EF,都在语言层面上区分字母大小写,程序员应该不会在这方面犯低级错误,况且区分大小写比较文本在执行效率上也高于不区分大小写的情况。当然,这个行为,今后可能进行必要的调整。TODO:参考RFC1738。)
如果您之前还对“FCGI fcgi = new FCGI();”这句代码感到奇怪,疑惑为什么不将FCGI类中的所有方法定义为静态方法的话,现在应该可以找到部分答案了。对了,优化的需要。在进入 fcgi.Accept() 循环之前,创建一个EF对象根本不影响FastCGI程序的执行效率,却又能从很大程度上优化执行效率,何乐而不为呢?
下篇预告:URL编码和URL解码
分享到:
相关推荐
1、基于.netCore 6 +EF 实现webApi增删查改基础应用,开箱即用 2、已解决webapi跨域问题 3、直接替换数据库链接即可使用
实验室和材料-Web应用程序开发 :warning: :warning: 考试信息(技巧和窍门) 使用脚手架或尝试重现自动创建部分(使用实体框架的带有视图的控制器) 对于数据表,您可以使用以下示例: 在REPO的解决方案领域中...
【ASP.Net Core Web应用程序】 创建数据库
基于EF+MVC+Bootstrap的通用管理系统。 Framework 业务无关的底层通用机制及功能 Model基类:提供数据传输和底层的最基本的基类及接口 DAL底层:基于EF code first,提供Repository泛型方法及写历史日志 Untility:...
源码说明: MVC 音乐店是用来介绍和展示使用 ASP.NETMVC 以及 Visual Studio 进行 Web 开发的示例应用程序,我们将从基础知识开始,一步一步地进行介绍,因此,初学者也可以去的很好的学习体验。 这个示例程序使用 ...
由EFCore配合WebApi搭建的简单框架,通过Ajax实现增删改查,显示部分用了AngularJS。压缩包中包含源码、数据库、搭建流程。
ASP.NET Boilerplate是一个通用应用程序框架,专门为新的现代Web应用程序设计。 它使用已经熟悉的工具并实现最佳实践。ASP.NET Boilerplate什么是ABP? ASP.NET Boilerplate是专门为新的现代Web应用程序设计的通用...
CollegeApp 设置: 具有 EntityFramework 6 和代码优先开发的 ASP.NET MVC5 Web 应用程序; 数据库服务器 2014 引导程序 3.0
ABP Framework是一个基于ASP.NET Core的完整基础结构,可以通过遵循软件开发最佳实践和最新技术来创建现代Web应用程序和API 。 入门 是使用ABP框架启动新Web应用程序的最简单方法。 是开发完整堆栈Web应用程序的...
该项目包含与Web服务和数据层应用程序进行通信的Web窗体,MVC5和Core Web应用程序。专案土狼ASP.NET Core / Identity Web应用程序,用于测试Puma Scan规则引擎。狸ASP.NET 4.6 MVC 5 / Identity Web应用程序,用于...
担心以后找不到了,留着文档以备查。本方法用于解决linq to EF中从string转成DateTime时不能使用LINQ的ConvertToDateTime的情况。仅用于备查。
与ASP相比ASP.NET在Web应用开发上无疑更容易,更有效率。Web开发大部分还是围绕着数据操作,建立数据库存储数据,编写代码访问和修改数据,设计界面采集和呈现数据。走过Asp.net学习入门阶段后,真正开始着手开发一...
•核心框架:ASP.NET MVC5、WEB API •持久层框架:EntityFramework 6.0 •定时计划任务:Quartz.Net组件 •安全支持:过滤器、Sql注入、请求伪造 •服务端验证:实体模型验证、自己封装Validator •缓存...
自己写的一个MVC项目,用EF连接数据库,前端调用webapi实现各种操作,对初学者会是很好的DEMO,里面有新增修改删除的完整功能
EF Core 3.1.x和5.x二级缓存拦截器实体框架核心3.1.x和5.x二级缓存库二级缓存是查询缓存。 EF命令的结果将存储在缓存中,以便相同的EF命令将从缓存中检索其数据,而不是再次对数据库执行它们。通过NuGet安装要安装...
在鱼鱼基础上开发各种WEB应用,挂接到鱼鱼上,不断扩展 以鱼鱼为核心,完善鱼鱼好友、群、组等基本聊天功能 扩展鱼鱼,与各种WEB应用紧密结合,鱼鱼号码做为接口 发展鱼鱼,努力构建WEB版腾讯QQ,打造鱼鱼...
该存储库是您一站式学习所有有关使用.NET技术和现代前端框架Angular构建Web应用程序的信息。 该项目是一个电影商店的Web应用程序,它提供数百种电影供购买,并且还为客户提供了一个平台,以分享他们对这些电影的评论...
ef开发框架
EF-FST减震.zip三菱PLC编程案例源码资料编程控制器应用通讯通信例子程序实例EF-FST减震.zip三菱PLC编程案例源码资料编程控制器应用通讯通信例子程序实例EF-FST减震.zip三菱PLC编程案例源码资料编程控制器应用通讯...
1、一套基于ASP.NET MVC+EF6+Bootstrap开发出来的框架,源代码完全开源,可以帮助你解决C#以及.NET项目68%的重复工作,让开发人员远离加班。 2、使用ApacheLicense2.0协议,采用主流框架,容易上手,简单易学,学习...