好久没写文了。那是1篇有关easyui合营ajax使用 的文章,
顺带介绍angularjs的施用 以及让您感受到angularjs的威力。网上对此ajax
的文也是如拾草芥 。笔者就不直接 从那种原生的httpxmlrequest 对象的js
写起了哈。 看那种东西也存粹是明白 高层的东西是怎么来的 原理是啥
真正做的时候写那种东西 不是扯淡么  你叼 你技术牛逼
整站的代码你全用那种写。html js 那种事物最开始布署出来就没思索周密正是坨屎。幸好现在有种种框架
可以协助大家更便于的把那坨屎做的更鲜美。也幸好由于互连网事业如日中天的拉动 让浏览器端的那堆东西正在往统1标准的矛头前进。 好了 正题。

 

我们来确立2个webform页面 HelloAjaxNet.aspx。先说下ajax
那里本人利用网上流传甚广的卓殊AjaxPro.2.dll  他的网站是
http://www.ajaxpro.info/ 这是二个民用文章 ,很好用。

自然新的asp.net 里自带了 服务端方法用webmethod 属性评释 客户端pagemethods访问 的法子 ,种种对象也足以json数据化
,成效跟下面一样的。微软自带的是aspx的codebehind 代码方法
一定要加static  ,至于webconfig 在新版的vs201叁付出环境下毫不配置
如若是老的则新建ajax网址项目则webconfig自动弄好了接下来服务端页面载入事件中
ScriptManager.GetCurrent(Page).EnablePageMethods = true; 客户端
必须有runat=server 的form 和 <asp:ScriptManager ID=”ScriptManager一”
runat=”server”>        </asp:ScriptManager> 
然后客户端就足以pagemethods 的不2诀要访问。

自家始终依然认为上边1贰分更加好用 。关于她的原理小编就不多说了 
,通过页面载入时登记服务端对象 ,然后生成的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/WebApplication壹.NewFolder二.HelloAjaxNet,WebApplication一.ashx  

接下来您就清楚了噻 那段客供你进行客户端js调用的脚本 是服务端自动生成的
跟你 服务端的名字1样 然后您就足以貌似像在客户端回调服务端方法样的
没什么神奇的,大家最首要正是想利用他的那个特点和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.二.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 你就能够领略为一群增添了的控件。就好像jquery1样 你把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这么1搞
$(‘#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就不曾须要了。

本人那里的WebApplication一.NewFolder二.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表示每页行数,每当你 点表格的 上1页 下1页 的时候
就会自动往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里面那种依赖属性
动态绑定 ,不精通你们用过没 反正笔者用过 感觉就3个字 爽
,做那种数据库平台程序 mfc winform 都以渣。

angularjs 的功底作者就不介绍了 哈 直接从须求入手 做八个分页表格 加
音讯更新 作用

angularjs的网址是 http://www.angularjs.org/
这么些网站在境内也是造访不了的。一些连锁的其余人的读书笔记有
http://www.angularjs.cn/ http://www.zouyesheng.com/angular.html

反正那四个学科看了下对本人没 对本身没起到吗功能 感觉跟嚼木渣样的
,angularjs的理念尽管是mvvm 不过angularjs本人照旧深感晦涩难懂。

本人就在如此二个半懂不懂的事态下写了那一个例子 ,全部的操作
大概都统统不须求向jquery那样动dom
。真心觉获得了他的强大。前端就3个controller函数
管整个页面,怎么二个3个的分 作者也不明了 只理解controller
跟html限定1样的树状结构。没在限制的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。
 第3次呼吁获得分页音信后 作者立马把数据绑定到表格
你能够见见完全就像做模板样的,然后初叶化自己的分页控件。 在ng-click
的时候像原来壹样触发客户端单击 然后调用controller里的法门去创新数据
,注意仅仅是根据工作逻辑去立异数据
其余的不供给做。关于地点两段代码不通晓的机关去看angularjs 入门和数目绑定
用不了10分钟,

是因为有wpf这种双向绑定机制,数据模型 数据更新了
页面内容自动跟着变。甚至你能够见到自家编辑上面文本框里的数码的时候
都还没交给 上边表格的数额就接着变
因为她们的多少是从同一个地点来的,看着模糊都感到是ajax哈。

图片 3

下边装有演示的档次源码下载
可径直运转,由于引了些外部库进来拾兆险些放不下

说点后话

实则照互连网如此有助于发展下去的话 前端会计统计一 前端才是王道 到时候二个网页
正是贰个系统 二个客户端。 后端只担负数据和安全。
未来的如何html5不是大概都改成工业标准了么 某个嵌入式设备都扶助

权且像腾讯网里自身看看的有多少个讲的 前后端天人合一的那种mvc模式前端后端操作同3个model
前端更新属性了有一种机制自动就创新到后端持久化到数据库去了 
只怕后端更新model的有些属性 前端html页面包车型客车值自动就变了。 不是说做不到
终归牛人这么多 ,小编认为至少还不稳定啊。

各样ui有easyui ligerui fineui miniui  Devexpress 还有许多js框架 seajs
requirejs JavaScriptMVC  backbone avalonjs knockout angular jquery
jqueryui js真是屎1样的东西啊各类框架学都学不完

愈来愈是软件行业繁荣富强 基于框架 和平台的技能太多了 不精通某样技术不要紧能使用就行 ,但是作为叁个技术人士 你足足得驾驭一样 可能一门技术
要不然就是个搬砖的 很遗憾
笔者基本还在搬砖的旅途。写作业代码正是用一年的经历混10年,写作业代码是她的行事
工作之余还得多少精神追究 切磋下作业的本质 ,只假如还不易的程序员
做那种数据库系统久了都会友善搞点能飞速支付的所谓的小框架
积累1些温馨的工具库 和经历。

在干活上毫无有啥样偏见  只要他每一日把作业代码写的出来
软件开发也只是壹门职业 你不是无所畏惧 ,指标是缓解难题 不是转牛角尖。

 

自笔者本身对js是有点胃疼的
js也很烂,当初设计那几个东西的时候就不周到给大家运用它导致了各样阻碍
,不过你做web开发又不得不用它。这里也并不是对做前端的有何样偏见
多谢那么些前端吃的很透的人 像司徒正美那多少个高手
创设了这几个工具让我们更便于的去做到这么些网址先后。

 

相关文章

网站地图xml地图