哼老没写文了。这是同一篇关于easyui配合ajax使用 的章,
顺带介绍angularjs的运用 以及为你感触到angularjs的威力。网上对此ajax
的和平也是大抵要牛毛 。我哪怕非直 从那种原生的httpxmlrequest 对象的js
写起了哈。 看那种东西吧存粹是了解 高层的物是怎来的 原理是什么
真正做的时刻写那种东西 不是聊淡么  你叼 你技术牛逼
整站的代码你全用那种写。html js 这种事物最开头筹划下就无考虑周全
就是坨屎。还吓现在发出各种框架
可以助我们再次爱之拿立即坨屎做的复美味。也尚好是因为互联网事业如日中天
的推动 让浏览器端的立即堆物在朝统一规范的取向前行。 好了 正题。

 

咱来树一个webform页面 HelloAjaxNet.aspx。先说下ajax
这里我利用网上流传甚广的万分AjaxPro.2.dll  他的网站是
http://www.ajaxpro.info/ 这是一个私创作 ,很好用。

本来新的asp.net 里打带了 服务端方法用webmethod 属性声明
 客户端pagemethods访问 的章程 ,各种对象也得以json数据化
,功能跟方一样的。微软自带的是aspx的codebehind 代码方法
一定要是加static  ,至于webconfig 在新版的vs2013开条件下毫不配置
如果是镇的虽然新建ajax网站项目则webconfig自动弄好了然后服务端页面载入事件中
ScriptManager.GetCurrent(Page).EnablePageMethods = true; 客户端
必须有runat=server 的form 和 <asp:ScriptManager ID=”ScriptManager1″
runat=”server”>        </asp:ScriptManager> 
然后客户端就得pagemethods 的办法访。

自我总还是认为点十分更好用 。关于他的法则我就是无多说了 
,通过页面载入时登记服务端对象 ,然后变的html页面及就是多矣这么几词

1 <script type="text/javascript" src="/ajaxpro/prototype.ashx"></script>
2 <script type="text/javascript" src="/ajaxpro/core.ashx"></script>
3 <script type="text/javascript" src="/ajaxpro/converter.ashx"></script>
4 <script type="text/javascript" src="/ajaxpro/WebApplication1.StudentsInfo,WebApplication1.ashx"></script>
5 <script type="text/javascript" src="/ajaxpro/WebApplication1.Grad,WebApplication1.ashx"></script>
6 <script type="text/javascript" 
src="/ajaxpro/WebApplication1.NewFolder2.HelloAjaxNet,WebApplication1.ashx"></script>
7 <script type="text/javascript" src="/ajaxpro/WebApplication1.DataEntity,WebApplication1.ashx"></script>

否是什么呢 为的是援引一截js文件
ajaxpro/WebApplication1.NewFolder2.HelloAjaxNet,WebApplication1.ashx  

接下来你就懂得了噻 这段客供你进行客户端js调用的脚本 是服务端自动生成的
跟你 服务端的讳如出一辙 然后若就算可以貌似像在客户端回调服务端方法样的
没什么神奇之,我们最主要就是想用他的此特性和json化数据的惠及的处在
来实现客户端服务端数据的无缝传递。

关于json数据的序列化 要是原先即便只有用表面json库
或者微软打带的来进展手动解析:

服务端:

 1 public string ServerProcerMethod4(string stu)
 2         {
 3             //System.Web.Script.Serialization.JavaScriptSerializer jsSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();
 4             //StuInfo s= jsSerializer.Deserialize<StuInfo>(stu);
 5 
 6             System.Web.Script.Serialization.JavaScriptSerializer jsSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();
 7             List<StuInfo> s = jsSerializer.Deserialize<List<StuInfo>>(stu);
 8             if (s != null && s.Count > 0)
 9             {
10                 StuInfo stu2= s[0];
11                 StringBuilder sb = new StringBuilder();
12                 jsSerializer.Serialize(stu2, sb);
13                 return sb.ToString();
14             }
15             else
16                 return null;
17         }

客户端:

1 //javascript 字符串转json对象:
2 
3 var obj = JSON.parse(str);
4 
5 //javascript json 对象转字符串:
6 
7 JSON.stringify(obj);

 

关于AjaxPro.2.dll  和ajax.dll的关联 ,网上说她们非一样
其实压根就是一个口打的吧 我擦 。请于面网站下载ajaxpro
这个才是应有尽有之本子

援dll文件后需要配备webconfig httphandler 作用就是是深受
上面的ashx请求转至我们的 ajaxpro代码
,进而让咱的客户端js直接调用服务端方法调用成功。

1 <system.webServer>
2     <directoryBrowse enabled="true"/>
3     <handlers>
4       <add verb="*" path="*.ashx" name="myhandler" type="AjaxPro.AjaxHandlerFactory,AjaxPro.2"/>
5       
6       <!--<add verb="POST,GET" path="ajax/*.ashx" name="myhandler" type="Ajax.PageHandlerFactory, Ajax" />-->
7     </handlers>
8   </system.webServer>

下一场另外的自我就不多说了哈待会直接看服务端代码。

 

easyui 你不怕足以知道啊平积扩展了之控件。就像jquery一样 你把js对象
原生的html控件用外的事物一样担保 然后便可以接触得发他有呢公勾勒好的艺术
帮助你方便的处理多少。并且还有默认的还可的控件外观,这点于做企业管理类软件以来
还是真诚不错的,做另外的就不得不呵呵了。下载easyui的文本 放到花色受到
并引入easyui 相关js和体制文件 还有jquery:

1     <script type="text/javascript" src="../jquery-easyui-1.4.3/jquery.min.js"> </script>
2     <link rel="stylesheet" type="text/css" href="../jquery-easyui-1.4.3/themes/default/easyui.css" />
3     <link rel="stylesheet" type="text/css" href="../jquery-easyui-1.4.3/themes/icon.css" />
4     <script type="text/javascript" src="../jquery-easyui-1.4.3/jquery.easyui.min.js"></script>

 

然后 ,然后你不怕足以使easyui了 就如easyui 首页 http://jeasyui.com/
上介绍的那么 通过css样式 或者js代码 把原生html控件渲染成easyui控件

1 <div class="easyui-dialog" style="width:400px;height:200px"
2     data-options="
3         title:'My Dialog',
4         iconCls:'icon-ok',
5         onOpen:function(){}">
6     dialog content.
7 </div>

1 <input id="cc" style="width:200px" />
2 
3 $('#cc').combobox({
4     url: ...,
5     required: true,
6     valueField: 'id',
7     textField: 'text'
8 });

凡的 非常有利于。其实国内还有众多js写的于牛的 弄了片如此ui 那样ui
选来选去还是用这个吧。用之无比多之需求就是ajax服务端分页 ,我们来将个吧。

我们事先说生者easyui的datagrid  打他狗日的,客户端html放个table标签
:<table id=”studb”></table> 然后就此js这么一搞
$(‘#studb’).datagrid() 他即便叫您渲染成easyui datagrid控件了
,你可在document.ready()时举行这工作。我们的数表格是待填数据的
这些数据由哪来 显示怎么列 怎么分页
每页显示小条,这些都是参数,怎么传进。easyui很多地方还收下json对象形式之均等垛参数
,比如这个datagrid:

 1 function bindDataToTb() {
 2             var keywordStr = $('#keyword').val();
 3             $('#studb').datagrid(
 4            {
 5                queryParams: { keyword: keywordStr },
 6                //url:"WebForm2.aspx/BindData",
 7                toolbar: '#searchBar',
 8                pagination: true,
 9                pageNumber: 1,
10                singleSelect: true,
11                pageSize: 5,
12                pageList: [5, 10, 20],
13                loader: function (param, success, error) {
14                    var da = WebApplication1.NewFolder2.HelloAjaxNet.BindData(param.keyword, param.page, param.rows)
15                    if (da.value.rows == null) {
16                        success();
17                    }
18                    else
19                        success(da.value);
20                },
21                pagePosition: 'bottom',
22                columns: [[
23                    { field: 'stuNo', title: 'Id', width: 100 },
24                    { field: 'name', title: '名字', width: 100 },
25                    { field: 'age', title: '年龄', width: 100 },
26                    { field: 'loginName', title: '登录名', width: 100 },
27                    { field: 'loginPwd', title: '密码', width: 100 },
28                    { field: 'GradId', title: '班级Id', width: 100 },
29                    { field: 'gradName', title: '班级', width: 100 },
30                    {
31                        field: 'none', title: '操作', width: 100, formatter: function (value, row, index) {
32                            var btn = '<a class="editcls" href="#" onclick="delstuClick(' + row.stuNo + ')">删除</a>';
33                            return btn;
34                        }
35                    }
36                ]]
37            });
38 
39         }

具体看loader 和columns ,loader用于定义你以什么花样载入数据
定义了loader上面的url就从不必要了。

我这边的WebApplication1.NewFolder2.HelloAjaxNet.BindData(param.keyword,
param.page, param.rows) 自然也是劳务端的方法 用于找数据的 。

至于这三个param.keyword, param.page, param.rows 是我们用来落实loader时
easyui那种设计方法故意暴露于咱们的参数 方便我们以。

param.keyword 是咱地方定义的
我们沾搜索的时段需要向服务端传一个查询关键词 queryParams: { keyword:
keywordStr }

param.page 是easyui自己之参数表示即第几页
param.rows表示每页行数,每当你 点表格的 上亦然页 下一页 的时光
就会见活动往loader 发翻页的参数 这个是机动的。

接下来就于服务端获取数据填充表格 ,就是这样一个工作过程。 还有colums
我就是隐瞒了便是概念显示怎么列 和由定义列 那个大轻看懂。

easyui控件有属于性 方法,调用方法 的样式总算像这样
:$(‘#studb’).datagrid(‘reload’) 
这就相当给调用了#studb这个表控件的reload方法了
然后数就会见活动刷新,每个控件的有血有肉表现文档。

服务端数据处理我们要用entityframework 我一般都为此codefirst的章程
这东西和他好之mssql数据库 结合的好好 用由大便利。

 

服务端代码:

 1 //查询(带分页
 2         [AjaxPro.AjaxMethod]
 3         public static WebApplication1.DataEntity BindData(string keyword, int page, int rows)
 4         {
 5             //, ref int pageIndex, out int totalPage
 6 
 7             if (keyword == null)
 8                 keyword = "";
 9 
10             int pageIndex = 1;
11             int pageSize = 3;
12             int totalPage;
13             if (page != 0)
14                 pageIndex = page;
15             if (rows != 0)
16                 pageSize = rows;
17 
18             MyDb db = new MyDb();
19             var data = from studentInfo in db.Students where studentInfo.name.Contains(keyword) select new 
{ stuNo = studentInfo.stuNo, name = studentInfo.name, age = studentInfo.age, gradName = studentInfo.grad.gradName };
20             //var data = from studentInfo in db.Students where studentInfo.name.Contains(keyword) select studentInfo;
21             
22             totalPage = data.Count() % pageSize == 0 ? data.Count() / pageSize : data.Count() / pageSize + 1;
23 
24             if (pageIndex > totalPage)
25                 pageIndex = totalPage;
26             else if (pageIndex < 1)
27                 pageIndex = 1;
28 
29             //var dt = DataList<object>.Create(data.OrderBy(r => r.stuNo), new StudentsInfo(), pageIndex, pageSize).Value;
30             object dt=null ;
31             if(data.Count()>0)
32             dt= DataList<object>.Create(data.OrderBy(r => r.stuNo),
33                 new { stuNo = 1, name = "", age = 1, gradName = "" }, pageIndex, pageSize).Value;
34 
35             WebApplication1.DataEntity result = new WebApplication1.DataEntity();
36             result.total = data.Count();
37             result.rows = dt;
38             return result;
39         }

 

有关数据有 和EF linq 分页那些自就算无贴出了
完整示例下载里面来。走走看吧 试试看吧 完全无刷新 服务端分页,感觉硬棒哒

图片 1

摸索怪我也未思说了哈 就再载入下数据而已,删除是由此由定义 列的法门
传id到js函数 然后调用服务端删除。然后如说下 录入功能 以及easyui自带
的表单验证也是一定便利之。

新建一个div 作为弹有层 里面有一个录入信息之表格 各种html控件
只要写及easyui对应的体  就活动渲染了 看弹出层的  class=”easyui-dialog”
data-options=”closed:true,title:’新学生注册’,modal:true”

骨子里大简单噻看字面意思就是知道了 这些参数 都在easyui的文档里产生。验证
也是于html元素上写data-options 就足以了, :

 1 <div id="addBox" class="easyui-dialog" data-options="closed:true,title:'新学生注册',modal:true" style="width: 400px; height: 150px">
 2 
 3             <table class="auto-style1">
 4                 <tr>
 5                     <td>学生姓名:</td>
 6                     <td>
 7                         <input id="stuname" class=" easyui-textbox" data-options="required:true,missingMessage:'必填项!',validType:'email',invalidMessage:'email格式不正确!'" type="text" /></td>
 8                 </tr>
 9                 <tr>
10                     <td>班级: </td>
11                     <td>
12                         <input class="easyui-combobox" id="grad" name="grad"
13                             data-options="valueField:'id',textField:'gradName',required:true,missingMessage:'必填项!'" /></td>
14                 </tr>
15                 <tr>
16                     <td>
17                         <input id="saveBtn" onclick="saveClick()" type="button" value="保存" /></td>
18                     <td>
19                         <input id="Button1" type="button" onclick="$('#addBox').dialog('close');" value="关闭" /></td>
20                 </tr>
21             </table>
22         </div>

新建按钮:

1 <a id="Button1" onclick="$('#addBox').dialog('open');" class="easyui-linkbutton">加新的</a>

瞩目千万别用button 元素  就是这种 <button>新加之</button> 
这是个坑 ,折腾了老。

保存按钮调用 的js函数:

 1 //保存信息
 2         function saveClick() {
 3             var isvaliok = $("#addBox").form('validate');//包起来的需要提交信息的那个div框的id
 4             if (isvaliok == false) {
 5                 $.messager.show({ title: '提示', msg: '请完善不正确的项后再提交', showType: 'show' });
 6                 return;
 7             }
 8             var stu = {};
 9             stu.name = $("#stuname").val();
10             stu.age = 22;
11             stu.GradId = $("#grad").combobox('getValue');
12             stu.gradName = $("#grad").combobox('getValue');
13             if (isNaN(stu.GradId))
14                 stu.GradId = null;
15             var rst = WebApplication1.NewFolder2.HelloAjaxNet.addStu(stu);
16 
17             if (rst.value == "ok") {
18                 $('#addBox').dialog('close');
19                 $('#studb').datagrid('reload');
20 
21                 var gradData = WebApplication1.NewFolder2.HelloAjaxNet.getGrad().value;
22                 $('#grad').combobox({ data: gradData }).combobox('reload');
23             }
24             else {
25                 $.messager.show({ title: '提示', msg: rst.error.Message + rst.value, showType: 'show' });
26             }
27 
28         }

留意到了噻:

1 var isvaliok = $("#addBox").form('validate');//包起来的需要提交信息的那个div框的id
2             if (isvaliok == false) {
3                 $.messager.show({ title: '提示', msg: '请完善不正确的项后再提交', showType: 'show' });
4                 return;
5             }

在easyui里进行认证很简短噻 只要在html代码里拿验证格式定义好了
,只待传入一个尽外容器控件的id $(“#addBox”).form(‘validate’)
就机关帮我们证实了。并且界面及还有提示 焦点自动放到第一单证明不经过之控件上去了
完全不欲我们着手。

本来我们在客户端 document.ready()的下 必须要绑定表格和生拉绳的数目:

1 $(function () {
2             //页面初始化
3             //载入表格数据
4             bindDataToTb();
5             //载入班级下拉框
6             var gradData = WebApplication1.NewFolder2.HelloAjaxNet.getGrad().value;
7             $('#grad').combobox({ data: gradData }).combobox('reload');
8             var fd = new FormData();
9         });

 

服务端保存的代码:

 1 //添加
 2         [AjaxPro.AjaxMethod]
 3         public string addStu(StudentsInfo stu)
 4         {
 5             MyDb db = new MyDb();
 6             if(stu.GradId==null)
 7             {
 8                 if (string.IsNullOrEmpty(stu.gradName) == false)
 9                 {
10                     Grad grd = new Grad();
11                     grd.gradName = stu.gradName;
12 
13                     Grad grdOld = db.grads.FirstOrDefault(r => r.gradName == stu.gradName);
14                     if(grdOld!=null)
15                     {
16                         return "类别已存在";
17                     }
18                     else
19                     {
20                         db.grads.Add(grd);
21                         stu.grad = grd;
22                     }
23                 }
24             }
25             db.Students.Add(stu);
26             db.SaveChanges();
27             return "ok";
28         }

服务端代码  如果我们从不这id的类型我们便当此项目是新的
,新加一个项目 然后迅即绑定 perfect 完美 ,棒棒哒

图片 2

 

看起来是不是有模有样。做管理类软件还行。

这般ui
那样ui当你待打定义样式的时光发现什么ui都是浮云,例如我说的境内的写js比较牛之
就曾去出来多ui了 ,表格是挺出色 很强劲。 其实过多功能而要么用不至
你想更改还坏困难 当然我的js也是深菜之。 当你用到任何一样仿ui
的当儿以如果熟悉她那无异法 。我不过想用个简简单单的自定义分页表格而现已
或者诸如asp.net里的服务器控件repeat 流式布局 四个数据一行那种 你怎么开。
还是友好动手吧。php里面来前端模板。

自身这里只是简单打骨子里需要了解下angular的威力 php里面模板什么的且是浮云  
新建一个webform  HelloAjaxNetAngular.aspx

小心这个例子  服务端代码我一律用点的丝毫且未会见转移
只是前者变了,angularjs 的主打思想是mvvm 模式 就是wpf里面那种依赖属性
动态绑定 ,不知晓你们用了并未 反正我于是过 感觉就是一个字 爽
,做这种数据库平台程序 mfc winform 都是垃圾堆。

angularjs 的基础我就算未介绍了 哈 直接打要求入手 做一个分页表格 加
信息更新 功能

angularjs的网站是 http://www.angularjs.org/
这个网址在国内为是访问不了之。一些相关的其他人的上学笔记有
http://www.angularjs.cn/ http://www.zouyesheng.com/angular.html

横就简单单科目看了产本着本人没有 对我未曾从至何作用 感觉与嚼木渣样的
,angularjs的见则是mvvm 但是angularjs本身或深感晦涩难理解。

本人就于这么一个半懂不懂的状态下写了是事例 ,所有的操作
几乎都完全不需要往jquery那样动dom
。真心感觉到了外的精锐。前端就一个controller函数
管整个页面,怎么一个一个之分 我耶不知晓 只知controller
跟html限定一样的树状结构。没在限之html元素不可知顾该controller里的
变量。
我们来拘禁之controller 函数 ,我形容的时刻吧从未什么感觉 。就是发格外存粹
就只感觉到到一定量独东西存在 。业务逻辑在操作数据。
就像以写c#数操作代码样:

 1 function myCtr($scope) {
 2             var mod = [{ name: 'xiang', age: 21 }, { name: 'xiang', age: 25 }, { name: 'xiang', age: 23 }];
 3             $scope.data = mod;
 4             $scope.curobj = {};
 5             $scope.pageEntity = { total: 0, rows: 5, page: 1, pgmsg: '' }
 6 
 7             //初始化默认第一页
 8             $scope.initPage = function () {
 9                 var firstPage = WebApplication1.NewFolder2.HelloAjaxNetAngular1.BindData($("#txtkeyword").val(), $scope.pageEntity.page, $scope.pageEntity.rows);
10                 $scope.data = firstPage.value.rows;
11 
12                 var pageEntityMod = {};
13                 pageEntityMod.total = firstPage.value.total;
14                 pageEntityMod.rows = $scope.pageEntity.rows;
15                 pageEntityMod.page = $scope.pageEntity.page;
16                 var totalpage = pageEntityMod.total % pageEntityMod.rows == 0 ?
17                     parseInt(pageEntityMod.total / pageEntityMod.rows) :
18                     parseInt(pageEntityMod.total / pageEntityMod.rows) + 1;
19                 pageEntityMod.pgmsg = "共 " + pageEntityMod.total + "条记录 每页 " + pageEntityMod.rows
20                     + "条,共 " + totalpage + "页 ,当前第 " + pageEntityMod.page + "页";
21                 $scope.pageEntity = pageEntityMod;
22 
23                 $scope.curobj = {};
24             }
25 
26             //更新当前 选定的
27             $scope.modifyCur = function () {
28                 var rst = WebApplication1.NewFolder2.HelloAjaxNetAngular1.updateStu($scope.curobj)
29                 //刷新表格 当前选中信息 复原
30                 $scope.initPage();
31                 alert(rst.value);
32             }
33 
34             //下翻页
35             $scope.nextPage = function () {
36                 var totalpage = $scope.pageEntity.total % $scope.pageEntity.rows == 0 ?
37                     parseInt($scope.pageEntity.total / $scope.pageEntity.rows) :
38                     parseInt($scope.pageEntity.total / $scope.pageEntity.rows) + 1;
39                 var pagenewnum = $scope.pageEntity.page + 1;
40                 if (pagenewnum <= totalpage)
41                     $scope.pageEntity.page += 1;
42                 $scope.initPage();
43             }
44             //上翻页
45             $scope.previousPage = function () {
46                 var pagenewnum = $scope.pageEntity.page - 1;
47                 if (pagenewnum >= 1)
48                     $scope.pageEntity.page -= 1;
49                 $scope.initPage();
50             }
51             //搜索
52             $scope.search = function () {
53             }
54             //选中一行
55             $scope.del = function (sender, curobj) {
56                 //所有行的颜色还原//设置选中那一行的颜色
57                 var rows = $(sender.target).parent().parent().parent().find("tbody").find("tr");
58                 for (var i = 0; i < rows.length; i++) {
59                     $(rows[i]).css("background", "white");
60                 }
61                 $(sender.target).parent().css("background", "#ffe48d");
62                 $scope.curobj = curobj;
63             }
64 
65             //首次先调用下 以获取第一页
66             $scope.initPage();
67         }

界面部分:

 1 <div ng-controller="myCtr" id="mygrid">
 2                 <input id="txtkeyword" type="text" /><input ng-click="initPage()" type="button" value="搜索" />
 3                 <br />
 4                 <br />
 5                 <div style="height: 200px">
 6                     <table cellspacing="0" border="1" class="gridtable">
 7                         <thead>
 8                             <th width="150px">name</th>
 9                             <th width="150px">age</th>
10                         </thead>
11                         <tbody ng-repeat="stu in data">
12                             <tr ng-click='del($event,stu)' style="background-color: white">
13                                 <td>{{stu.name}}</td>
14                                 <td>{{stu.age}}</td>
15                             </tr>
16                         </tbody>
17                     </table>
18 
19                 </div>
20                 <div id="pager">
21                     <a href="#" ng-click="previousPage()">上一页</a> <a href="#" ng-click="nextPage()">下一页</a>
22                     {{pageEntity.pgmsg}}
23                 </div>
24 
25                 <div>
26                     姓名:<input type="text" value="{{curobj.name}}" ng-model="curobj.name" /><br />
27                     年龄:<input type="text" value="{{curobj.age}}" ng-model="curobj.age" />
28                     <input id="Button1" type="button" ng-click="modifyCur()" value="更改" />
29                 </div>
30             </div>

 

望自身自己来了一个数绑定函数 参照easyui里datagrid的loader。
 第一糟呼吁得到分页信息后 我就将数据绑定到表格
你可看到全就是比如做模板样的,然后初始化自己之分页控件。 在ng-click
的下像原来平触发客户端单击 然后调整用controller里的道去创新数据
,注意就是根据作业逻辑去创新数据
其他的未需要举行。关于地方两段代码不掌握的机动去看angularjs 入门和数据绑定
用不了10分钟,

出于有wpf那种双向绑定机制,数据模型 数据更新了
页面内容自动就变。甚至你可看自己修下面文本框里之数的时节
都还未曾交给 上面表格的数码就随之变
因为她俩之数额是由和一个地方来之,看在惺忪都感觉是ajax哈。

图片 3

地方有示范的项目源码下载
可径直运行,由于引了几外部库进来十兆险些放不下

说点后话

实质上以互联网如此有助于发展下去的话 前端会统一 前端才是王道 及时刻一个网页
就是一个系 一个客户端。 后端只承担数据及安。
现在底哟html5无是几都改为工业标准了么 有些嵌入式设备还支持

临时像博客园里我看齐的发几只操的 前后端天人合一的那种mvc模式
前端后端操作同一个model
前端更新属性了发出雷同栽机制自动就更新到后端持久化到数据库去矣 
或者后端更新model的某属性 前端html页面的值自动就换了。 不是说做不至
毕竟牛人这么多 ,我觉得至少还未平稳吧。

各种ui有easyui ligerui fineui miniui  Devexpress 还有不少js框架 seajs
requirejs JavaScriptMVC  backbone avalonjs knockout angular jquery
jqueryui js真是屎一样的东西啊各种框架学都学非收场

更是是软件行业日新月异 基于框架 和平台的艺最多了 不贯某样技术没关系
能使用就行 ,但是作为一个技术人员 你至少得会一样 或者千篇一律宗技术
要不然就是单搬砖的 很遗憾
我中心还于搬砖的路上。写作业代码就是用相同年之经验混十年,写作业代码是他的工作
工作的衍还得有点精神追究 研究下业务的本质 ,只要是尚对的程序员
做这种数据库系统长期了还见面融洽折腾点力所能及高效开之所谓的微框架
积累一些和好的家伙库 和涉。

于做事上不用有什么偏见  只要他每天将事情代码写的下
软件开发也仅仅是一致流派职业 你不是大胆 ,目的是釜底抽薪问题 不是转牛角尖。

 

自自对js是稍稍感冒的
js也深烂,当初统筹这东西的早晚就是无周到让咱运用其导致了各种阻碍
,但是若开web开发而不得不用它。这里吧并无是对准做前端的发什么偏见
感谢那些前端吃的那个透的人数 像司徒正美那些高手
制造了这些家伙给咱们重爱的去完成这些网站先后。

 

相关文章

网站地图xml地图