图片访问量大(不是盗用的)
1.买资源服务器,分开放图片资源
2.增加宽带
3.使用CDN缓存,自己搭也可以购买第三方的
4.启用gzip图片压缩,不过得看服务器配置怎么样,并且gzip图片压缩比也不咋滴
用Server.HtmlEncode对提交的字符串进行HTML转义,将空格或其他特殊字符转义成 ,由于&#是特殊字符,无法POST数据,解决办法是将字符串再转义一次
如果提交的字符串中出现了“+”号,需要将“+”替换成“%2B”
文件上传或是图片上传
获取文件 HttpFileCollection hfc = HttpContext.Current.Request.Files;
HttpPostedFile pf = hfc[0];
获取图片 HttpPostedFile hpf = HttpContext.Current.Request.Files[0]
Stream ImgStream = hpf.InputStream;
base64码 HttpContext.Current.Request["fileList"]
表单
required:注册浏览器所规定的必填字段
lay-verify:注册form模块需要验证的类型
class="layui-input":layui.css提供的通用CSS类
select标签
通过设定属性 lay-search 来开启搜索匹配功能,属性selected可设定默认项
属性disabled开启禁用,select和option标签都支持
复选框
属性title可自定义文本(温馨提示:如果只想显示复选框,可以不用设置title)
属性checked可设定默认选中
属性lay-skin可设置复选框的风格(primary或switch)
设置value="1"可自定义值,否则选中时返回的就是默认的on
属性lay-text可自定义开关两种状态的文本
设置value="1"可自定义值,否则选中时返回的就是默认的on
多行文本框
class="layui-textarea":layui.css提供的通用CSS类
class="layui-inline":定义外层行内
class="layui-input-inline":定义内层行内
添加自定义的SoapHeader可以成功调用WebService,否则不能调用WebService,从而实现对Web Service的非法调用
IndexOf() 为-1表示没有找到指定字符串
Response.AddHeader("Cache-Control","no-cache");不缓存页面
ToUpper()转换为大写
ToLower()转换为小写
JS中
toUpperCase()转换为大写
toLowerCase()转换为小写
stopPropagation()阻止事件冒泡
preventDefault()阻止默认事件(捕获)
onbeforeunload离开当前页面时触发的函数
Container.ItemIndex + 1 +((PageIndex -1)*PageSize)
autocomplete="off"禁止input的记忆功能
cellpadding 是边框与其内容的间隙大小
cellspacing 是边框与边框之间的间隙大小
HttpRuntime.Cache下的除了WEB中可以使用外,非WEB程序也可以使用
HttpContext.Current.Cache则只能用在WEB中
localStorage可以将第一次请求的数据直接存储到本地,没有时间限制的数据存储
localStorage.setItem("",);//存入参数1.调用的值2.要存入的数据
localStorage.getItem("");//取值
localStorage.clear();//清空localStorage
localStorage.removeItem("arr");
JSON.stringify() JSON对象转化为JSON字符串
JSON.parse() JSON字符串转JSON对象
meta的属性有两种:name和http-equiv
onFocus()获得焦点
onBlur()失去焦点
JS中hasClass 返回Bool类型
HttpUtility.UrlEncode()
SQL设置表结构不复制数据
select * into 数据库名.dbo.新表名 from 数据库名.dbo.原表名 where 1=0
ScanCode.aspx、qrCode.ashx、WebService.asmx、zd_UserSite_List.aspx
HTTP访问API出现的问题
1.Content-Type:常用的为application/x-www-form-urlencoded(字符串有特殊字符记得编码),以key=value&key=value的方式提交,接口文档中明确指出Content-Type为application/json; charset=UTF-8时,参数提交时需要改为"{key:value}"再提交
2.Dictionary序列化为JSON对象
3.时间戳的方式有几种
public static string GetTimeStamp()
{
TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
return Convert.ToInt64(ts.TotalMilliseconds).ToString();//毫秒
return Convert.ToInt64(ts.TotalSeconds).ToString();//秒
}
DateTime.Now.Ticks
4.接口中地址出现{},比如http://{app_path}/openserviceauth/authorize.ashx?AID={aid}&SID={sid}&KEY={key}
是为了参数化,而不需要加在参数里
5.有些接口需要先调接口获取Token,Token在N分钟后会失效,失效后需要再获取新的Token,可以将Token设置在缓存中,缓存时间(N-1)分钟后失效,一旦失效后重新调用接口获取Token,然后循环调用接口取数据
4.麻烦认真看文档,不要缺东少西的!!!!!!
Array.Copy()方法是C#提供的一个用于数组复制的方法。
其第一个参数是被复制的数组名,第二个参数是复制到的数组名,第三个参数是要复制的数据数目。
Hashtable ht = new Hashtable();
ht.Add("A", "AA");
ht.Add("B", "BB");
ht.Add("C", "CC");
Console.WriteLine(ht.Count);
ht.Remove("BB");
Console.WriteLine(ht.Count);
没有找到指定的key,不会报错
IsPostBack的使用
当页面首次加载时,IsPostBack此时为false,表示该页正在被首次加载和访问,处理完成后加载页面(JS+DOM),再次请求服务器时,IsPostBack此时为ture,表示当前请求为响应客户端回发而加载,非首次加载