开发经验总结
2018-8-29
1. 盡量不要在循環方法里面查詢數據庫 應該使用join或者union將數據統一查詢出來后,循環處理數據
2.添加或者更新數據時,addtime 和updatetime 的值不要寫在dal層,統計數據時不好控制
3.如果你程序里面使用的sql語句的話。insert 語句 應該寫明添加的哪些字段。insert into table (i1,i2) values(v1,v2) ?拒絕寫成 insert into table values(v1,v2)。。否則表新增字段,又只能發新服務端時,舊服務端會報錯的。你就哭吧
4.一定要寫好注釋,否則代碼突然出現問題,你都不知道自己寫的是啥。(容我哭會)
5.要有自己的命名習慣,比如查詢方法用X_Query 就一直用X_Query。 ? 數據列表叫X_datalist 就一直叫X_datalist ?雖然沒有啥卵用,但至少看著代碼規范會感覺舒服
6.要經常考慮到數據的安全性。沒有領導希望自己公司的數據隨便一個連接就可以被訪問到
?7.任何對象或者變量一定要考慮空值的情況。
2018-9-20 ?
1. jquery 下獲取標簽下標 $(this).index() 一直為-1 。當時使用的版本是 1.3.1 ,換成了更高的1.9.1.1版本解決了
2. 頁面自適應 手機端
<meta name="format-detection" content="telephone=no" />
<meta name="viewport" content="initial-scale=1, width=device-width, maximum-scale=1, user-scalable=no">
<meta name="apple-mobile-web-app-status-bar-style" content="default">
<meta name="applicable-device" content="mobile">
<meta name="apple-mobile-web-app-title" content="">
<meta name="apple-mobile-web-app-capable" content="yes" />
3.數據庫中保存的字段值 <p> 這是一個p標簽</p> 如何顯示再MVC頁面上 ?使用?? @MvcHtmlString.Create("<p> 這是一個p標簽</p>?")
?
2019-3-14
1. 任何固定的東西最好配置再config文件中,因為說不定什么時候就改了,你以為的并不是你以為的,老板以為的也并不是老板以為的。
2. select 標簽 消除默認樣式??
select {
appearance: none;
-moz-appearance: none;
-webkit-appearance: none;
}
3. 網頁定位--百度
<script type="text/javascript" src="https://api.map.baidu.com/api?v=2.0&ak=oswMM5p4hySG5nU6A3ZGG5TZSkcPXjPG"></script>
var myCity;
function getCityName() {
myCity = new BMap.LocalCity();
myCity.get(myFun);
}
function myFun(result) {
consolo.log(result.name)
}
4.jquery ajax 方法
$.ajax({
type: 'post',
url: url,
datatype: 'text',
success: function (result) {},
error:function(){}
});
ajax 生成的標簽,添加click或者其他事件時,最好添加在ajax的內部
5.判斷當前系統類型
var u = navigator.userAgent, app = navigator.appVersion;
var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1; //android終端或者uc瀏覽器
var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios終端
6. 常見的加密方法
SHA1 加密
SHA1CryptoServiceProvider sha1 = new SHA1CryptoServiceProvider();
var hash = sha1.ComputeHash(Encoding.UTF8.GetBytes(paramStr));
StringBuilder secpwd = new StringBuilder();
foreach (byte b in hash)
{
secpwd.AppendFormat("{0:x2}", b);
}
return secpwd.ToString();
MD5加密
MD5 md5 = new MD5CryptoServiceProvider();
byte[] data = Encoding.UTF8.GetBytes(src);
byte[] md5data = md5.ComputeHash(data);
md5.Clear();
var retStr = BitConverter.ToString(md5data);
retStr = retStr.Replace("-", "").ToUpper();
return retStr;
7.對字符串url編碼??HttpUtility.UrlEncode(value, Encoding.UTF8)
8.最簡單的http post 請求
if (method.ToLower() == "post")
{
HttpWebRequest req = null;
HttpWebResponse rsp = null;
System.IO.Stream reqStream = null;
System.IO.Stream stream = null;
StreamReader reader = null;
try
{
req = (HttpWebRequest)WebRequest.Create(url);
req.Method = method;
req.KeepAlive = false;
req.ProtocolVersion = HttpVersion.Version10;
req.Timeout = 1000 * 60 * 5;
req.ContentType = "application/x-www-form-urlencoded;charset=utf-8";
byte[] postData = Encoding.UTF8.GetBytes(BuildQuery(parameters, "utf8"));
reqStream = req.GetRequestStream();
reqStream.Write(postData, 0, postData.Length);
rsp = (HttpWebResponse)req.GetResponse();
Encoding encoding = Encoding.GetEncoding(rsp.CharacterSet);
stream = rsp.GetResponseStream();
reader = new StreamReader(stream, encoding);
return reader.ReadToEnd();
}
catch (Exception ex)
{
throw;
}
finally
{
if (reqStream != null) reqStream.Close();
if (rsp != null) rsp.Close();
if (reader != null) reader.Close();
if (stream != null) stream.Close();
if (rsp != null) rsp.Close();
}
}
else
{
//創建請求
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url + "?" + BuildQuery(parameters, "utf8"));
//GET請求
request.Method = "GET";
request.ReadWriteTimeout = 5000;
request.ContentType = "text/html;charset=UTF-8";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream myResponseStream = response.GetResponseStream();
StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
//返回內容
string retString = myStreamReader.ReadToEnd();
return retString;
}
9. cookie 的保存與獲取??
if (Request.Cookies["tokencookie"] != null)
{
HttpCookie cok = Request.Cookies["tokencookie"];
cok.Values.Set("token",UserToken);
Response.AppendCookie(cok);
}
else
{
HttpCookie cookie = new HttpCookie("tokencookie");//初使化并設置Cookie的名稱
DateTime dt = DateTime.Now;
TimeSpan ts = new TimeSpan(30, 0, 0, 0, 0);//過期時間為30天
cookie.Expires = dt.Add(ts);//設置過期時間
cookie.Values.Add("token", UserToken);
Response.AppendCookie(cookie);
}
if (Request.Cookies["tokencookie"] != null)
{
HttpCookie cok = Request.Cookies["tokencookie"];
string token = cok["token"]
string idmobile = cok["idmobile"]
}
10.獲取 post過來的數據
StreamReader reader = new StreamReader(System.Web.HttpContext.Current.Request.InputStream);
string postdatastr = reader.ReadToEnd();
11. 記錄日志一定要記錄的盡可能詳細,為后期查找問題原因搭好基礎
12. timespan
DateTime time = DateTime.Parse("2019-3-11 12:30:25");
TimeSpan ts = DateTime.Now.Subtract(time);
int days = ts.Days;//3
double totaldays = ts.TotalDays;//3.1039638617893517
int hours = ts.Hours;//2
double totalhours = ts.TotalHours;//74.495132682944444
DateTime time1 = DateTime.Parse("2019-3-14 12:30:25");
TimeSpan ts1 = DateTime.Now.Subtract(time1);
int days1 = ts1.Days;//0
double totaldays1 = ts1.TotalDays;//0.10460842411921296
int hours1 = ts1.Hours;//2
double totalhours1 = ts1.TotalHours;//2.5106021788611108
DateTime time2 = DateTime.Parse("2019-3-14 15:01:25");
TimeSpan ts2 = DateTime.Now.Subtract(time2);
int days2 = ts2.Days;//0
double totaldays2 = ts2.TotalDays;//0.000508108837962963
int hours2 = ts2.Hours;//0
double totalhours2 = ts2.TotalHours;//0.01219461211111111
int min = ts2.Minutes;//0
double totalmin = ts2.TotalMinutes;//0.73167672666666672
DateTime time3= DateTime.Parse("2018-3-10 15:01:25");
TimeSpan ts3 = DateTime.Now.Subtract(time3);
int days3 = ts3.Days;//369
double totaldays3 = ts3.TotalDays;//369.00227576781248
int hours3 = ts3.Hours;//0
double totalhours3 = ts3.TotalHours;//8856.054618427499
int min3 = ts3.Minutes;//3
double totalmin3 = ts3.TotalMinutes;//531363.27710565
timespan 的 days屬性是包含所有的天數, hours屬性只與小時數有關 例如 18年3月10號 15:05---19年3月14號 16:05? days=369? hours=1 .
?
13.? span 標簽賦值
比如有3個span,你需要給第三個賦值,你可能會這么寫? ?$("#wangdai").find("span")[2].html("命中");? 但是瀏覽器不認識的,要用eq(2).html() 才行;
?
?14? cookie 問題? ?
當你發現你要的cookie不存在時,請查看下生成cookie時的域名和你當前判斷cookie的域名是否一致 !!!!!
2019-7-11
?15 apsx 頁面 獲取 aspx.cs 里面的值
比如后臺有一個 protected? string type="1"; 那么在前臺頁面? 如果是在集合里面例如repearter 里面可以使用<%#type%> 獲取到值,在html標簽, 非服務器控件,可以使用<%=type%> 獲取到值,但如果是在單獨的服務器控件是無法獲取到值的,只能后臺賦值
************都是些很基本的東西,想起來會記一下。
?
轉載于:https://www.cnblogs.com/gxffighting/p/9555310.html
總結
- 上一篇: python----面对对象三大特征2
- 下一篇: 最好的云备份选项