项目开发中遇到的一些问题以及解决方法.

1. 脚本相关

  • mvc中RemoteAttribute使用,在IE浏览器下面会将结果缓存起来(304).因为IE浏览器判断Url的链接参数都没有变化,所以直接返回上一次的结果(304结果),但是其实我是需要重新再验证.

    解决方式:直接在jquery.validate.unobtrusive.js的remote方法中加上时间戳即可.
    var remoteUrl = options.params.url;
    var remoteUrlAppendTime = remoteUrl + (remoteUrl.indexOf('?') > -1 ? "&" : "?") + new Date().getTime();

  • jquery validate 在IE10 下出现 js错误(成员找不到)的修正

    解决方式:
    this.attr('novalidate', 'novalidate');
    //====>修改为下面即可
    if (typeof (Worker) !== "undefined") { this.attr('novalidate', 'novalidate'); }

  • jquery调用webapi的参数仅仅只有一个数组(array).web api是如下定义public Result TestArray(string[] testArr);

    解决方式:
    将该数组直接弄成对一个参数名为空的对象.如下代码所示:
    var arr=[1,2];var obj={"":arr};$.ajax({data:obj...});

    2.样式相关

  • 笔者需要处理一些响应式布局,鉴于笔者对css 比较小菜鸟.在使用@media screen and (max-width:450px)进行对移动端进行兼容.但是考虑到IE8下不能使用media进行query

    解决方式:
    下载css3-mediaqueries.js脚本放置到

    3.Web Api端

  • web api生成文档,笔者这边使用web api help直接生成的文档.然而,针对分层的解决方案,在api help页面上不显示其注释的内容.

    解决方法:
    ①在.Areas.HelpPage.HelpPageConfig指向一个xml改变成指向指定的文件夹
    config.SetDocumentationProvider(new XmlDocumentationProvider( HttpContext.Current.Server.MapPath("~/App_Data")));
    ② 在XmlDocumentationProvider构造函数中,通过文件夹获取文件夹下的注释xml;删除_documentNavigator变量,并添加private List _documentNavigators = new List();
    public XmlDocumentationProvider(string appDataPath)
    {
    if (appDataPath == null)
    {
    throw new ArgumentNullException("appDataPath");
    }
    var files = Directory.GetFiles(documentPath, "*.xml");
    foreach (var file in files)
    {
    XPathDocument xpath = new XPathDocument(Path.Combine(appDataPath, file));
    _documentNavigators.Add(xpath.CreateNavigator());
    }
    }
    ③ 增加xml选择器的代码
    private XPathNavigator SelectSingleNode(string selectExpression)
    {
    foreach (var navigator in _documentNavigators)
    {
    var propertyNode = navigator.SelectSingleNode(selectExpression);
    if (propertyNode != null) return propertyNode;
    }
    return null;
    }
    ④ 将_documentNavigator.SelectSingleNode调用修改为第三步的方法名.至于将各个分层注释生成到指定文件夹,可以自己配置.

    4.部署相关(主要是发布时一些小优化)

  • 对于IIS无法加载js与css的问题

    解决方法:在控制面板上打开或关闭window功能中的Internet信息服务里的万维网服务=>常见HTTP功能=>静态内容,安装之就可以完成

  • 启动浏览器本地缓存

    操作:IIS管理器中指定的网站上,Http响应标头==>常用标头==>勾取使web过期之后7天;在mvc的web.config 的

  • iis启动gzip压缩

    操作:iis管理器指定网站的"压缩"==>勾取启动静/动态内容压缩,有利于加快访问传输数据

  • 在线测试网页的访问速度,笔者这边使用卡卡网网站进行检测,该网站会提出一些优化建议,各位看官不知道还有没有好用??

    5.写在最后

  • 网页的访问速度更很多方面挂钩,不仅仅部署的时候注意.其实更多的是数据库操作以及一些必要的缓存策略.
  • 对于数据库方面更多就是更多的注意批量操作的以及跨表查询.现在ORM框架都比较成熟,如EF,NH等,查询方面需要明白IQueryable与IEnumerable区别?是使用懒惰加载还是贪懒加载?批量插入是一条条插入还是直接批量直接插入?等等方面多考虑
  • 缓存笔者这边更多就使用原生的HttpRuntime.Cache进行缓存一些经常用到的配置信息等等.
  • 代码的可读性/稳定性,都需要留心注意.因为当别人坑你的时候你不爽,就应该想到自己不要留坑给别人
    希望能给你一点点帮助!

一些参考
http://stackoverflow.com/questions/21895257/how-can-xml-documentation-for-web-api-include-documentation-from-beyond-the-main
http://www.iis.net/configreference/system.webserver/staticcontent/clientcache
http://kwilson.me.uk/blog/post-an-array-of-objects-to-webapi-using-jquery/
http://jingyan.baidu.com/article/597035521b96e88fc00740af.html
http://www.cnblogs.com/alicePanZ/p/4789687.html

mvc项目问题清单以及解决方法的更多相关文章

  1. asp.net MVC webservice 报次错解决方法

    asp.net  MVC  webservice  报次错解决方法: 解决方法: 在 RouteConfig.cs public static void RegisterRoutes(RouteCol ...

  2. Eclipse项目红色叹号解决方法

    情况:就是项目出现红色感叹号 解决方法: 对准项目右键选择Build Path → configure build path 点击eclipse项目的configure build path后,在弹出 ...

  3. MVC Ajax.BeginForm重复提交解决方法

    mvc使用MVC Ajax.BeginForm提交的时候有重复提交结果的时候检查相关js文件引用情况, 其中mvc4注意 1 2 3 4 @Scripts.Render("~/bundles ...

  4. 工控随笔_06_西门子_Step7归档项目无法备份的解决方法

    在一次备份Step7项目时,突然发现无法进行备份而是报错,具体的报错内容如下所示: 图 step7 归档程序时报pkzipc.exe 应用程序错误  内存不能为"read" 一.s ...

  5. Idea导出jar包运行报错:找不到主清单属性解决方法

    解决方法 1.打开项目结构 2.创建一个Artifact 3.设置 我这里使用的maven,所以有resources文件夹 4.创建lib文件夹 右键output diretory,选择创建文件夹,名 ...

  6. 目录已存在导致Jenkins项目构建失败的解决方法

    Jenkins中的项目在下载源代码时,如果Working Directory中存在未加入版本控制的文件或者目录已经存在于SVN库中,会导致更新失败,整个构建终止,解决方法是将SVN的检出策略由&quo ...

  7. ASIHTTPRequest开源类项目导入问题及解决方法

    在静态库project中加入ASIHTTPRequest导出lib.a.放到project里编译出一下错: Undefined symbols for architecture armv7: &quo ...

  8. VS编译duilib项目时候的错误解决方法整理(转载)

    转载自:http://blog.csdn.net/x356982611/article/details/30217473 @1:找不到Riched20.lib 用everything等软件搜索下磁盘, ...

  9. Android项目无法运行的解决方法

    文件本身是否有问题 有两种方法可以判断:1.比较快捷的办法就是用解压软件打开或者解压的过程中有没有弹出什么错误提示,如果有错误提示那就重新下载一遍文件(javaapk用的压缩工具是winrar4.0, ...

随机推荐

  1. webform注册和Repeater

    一.注册1.日期(1)年月日用三DropDownList个,分别循环写入数字 代码写在后台  Page_Load中的代码 if (IsPostBack == false) { //年绑定数据 ; i- ...

  2. mysql事务处理用法与实例详解

    来源:转载  MySQL的事务支持不是绑定在MySQL服务器本身,而是与存储引擎相关1.MyISAM:不支持事务,用于只读程序提高性能 2.InnoDB:支持ACID事务.行级锁.并发 3.Berke ...

  3. Linq查询数据集取得排序后的序列号(行号)

    今天群里有同学问如何用linq取结果集的行号,查了一下资料,发现linq有很简单的方法可以实现,花了几分钟写了一个测试用例,现记录下来,以备参考: /// <summary> /// 测试 ...

  4. Spring MVC开发环境的搭建和实例

    一.安装jdk 二.安装tomcat 三.安装maven 新增环境变量MAVEN-HOME,并在path变量中添加bin路径 四.安装IntelliJ IDEA 五.创建maven web项目选择jd ...

  5. VS2013中,RDLC设置数据源和参数的界面

    今天打开RDLC文件设置参数和数据源时,始终找不到那个窗口,原来那个窗口叫“报表数据”,在“视图”菜单的最下面! 另外:要在当前窗口时打开的RDLC文件时,视图下面才有该选项!!! 参考:http:/ ...

  6. topsort | | jzoj[1226] | | NOIP2003神经网络

    今天终于通过了那道永远都看不懂题目的神经网络... 所谓拓扑排序,就是在有向无环图中,根据已经有的点和点之间的关系进行排序 引用jzyz教材上的栗子:比如说奶牛比较食量大小,我现在拿到的是cow[i] ...

  7. python工具的安装

    下载: python安装包:python-2.7.3.msi pywin32-218.win32-py2.7.exe setuptools安装包:setuptools-0.6c11.win32-py2 ...

  8. python 2.X

    from BaseHTTPServer import BaseHTTPRequestHandler

  9. Browser增加下载路径选择功能

    SWE Browser中有xml/download_settings_preferences.xml, 但在代码中却没有调用,导致“设置”中没有”选择下载路径“功能. 在com.android.bro ...

  10. 关于MAC系统的DNSCrypt的设置教程

    DNSCrypt的设计完全是为了解决某些网站DNS系统被污染的问题. 如图是查看本地的DNS DNS系统是一个主要领域的安全保障,因为受损数据从一个DNS服务器会导致你的系统或者无法找到需要的服务器需 ...