资讯专栏INFORMATION COLUMN

Ember.js 资源列表

Yangyang / 522人阅读

摘要:最近我应邀为朋友写一个,前期在考虑技术栈的时候选择了。眼下第一目标是把这个应用写完,在此过程中本着打破砂锅问到底的精神,我在网上找到一些很不错的的资源。于是记录于此本列表正持续更新中。

最近我应邀为朋友写一个 Web App,前期在考虑技术栈的时候选择了 Rails API+Ember.js。考虑到这个应用的规模,选择 Ember.js 或许有点重,但是做公司的项目一直都在用 Angular,实在有点玩腻了(Angular 很好),而其他的前端框架要么不好玩,要么还不够成熟(我真好想用 Meteor,好想好想……)。纠结反复,最终还是决定玩一下 Ember.js。

开始动手写了一天之后,我觉得 Ember.js 真的很棒!去年前曾经试过水,但那时还没有发行第一个正式版,文档乱七八糟不说,Ember-data 更是让人抓狂不已。但是现在好多了,真是好太多了。而且我发现像我这种有架构洁癖加代码洁癖的强迫症患者,Ember.js 比 Angular 更符合我的审美观。

眼下第一目标是把这个应用写完,在此过程中本着打破砂锅问到底的精神,我在网上找到一些很不错的 Ember.js 的资源。其中有好些没来得及细细看完,也有一些值得多看几遍,日后指不定还用得着呢。于是记录于此——

  

本列表正持续更新中。如果你喜欢,请收藏,更新之后你会第一时间收到;如果对你有用,请不吝赞赏。(Last updated at: Apr 14, 2014 10:00pm)

原理

Ember Run Loop and TDD(Ember 运行迴圈和测试驱动开发) 2014-01-24

This is how I understand run loop finally

Router Request Lifecycle(路由请求的生命周期) 2013-02-08

PostgreSQL Basics by Example 2013-08-19

这跟 Ember.js 半毛钱关系都没有,纯属见猎心喜……

Ember Run Loop Visual(可视化的运行迴圈演示)

来源于这篇精彩的问答

Ember Components Transclude My Directives(讲述 Angular 和 Ember)

我多次希望像别人明确 Angular 和 Ember 的区别(一个是工具集,一个是框架),以及它们各自的优缺点(证明 Ember 一点都不弱于 Angular),但是我人微言轻,没啥公信力,多数前端工程师又太过迷信和狭隘,所以我总是徒劳的一个。
不过这个演讲非常棒,非常准确清晰的说出了我想说的大部分东西(从最具争议的 Directive 和 Component 的对比入手)所以,我强烈推荐阅读一下,特别是熟悉 Angular 的你们,因为该演讲者刚在今年的 NgConf 上发表了相同主题的另外一次演讲。

演讲视频:http://confreaks.com/videos/3303-emberconf2014-ember-components-transclude-my-directives

技巧

An easy and clean way to set the page title(一个简洁的改变 </b> 的方法)</p> <p> Ember Animation and Transition <em>非常好的动画范例集合</em><br><br> <p> <em>在线 Demo:</em> http://ef4.github.io/ember-animation-demo </p> <p> <em>配套演讲(at Ember Conf 2014)</em> http://confreaks.com/videos/3302-emberconf2014-animations-and-transitions-in-an-ember-app </p> </p> <p> Alert messages in Ember Apps <em>全局通知栏的一种实现方法</em> </p> <b>测试</b> <p> Ember.js Testing <em>2014-01-16</em><br><br> <p><em>入门级测试环境搭配指南,胜在比较新</em></p> </p> <p> Ember.js testing with Jasmine<br><br> <p><em>没用 Jasmine,重点是测试中的异步控制</em></p> </p> <p> Testing Ember with Jasmine 2.0<br><br> <p><em>这一篇相当新,但为啥都喜欢 Jasmine?</em></p> </p> <p> Integration testing your ember.js app with QUnit and Karma<br><br> <p><em>我喜欢 Karma</em></p> </p> <p> Ember Integration Testing With Konacha<br><br> <p><em>Great Post!</em></p> </p> <p> The Unofficial - Official Ember Testing guide<br><br> <p><em>一个很好的测试指南</em></p> </p> <b>协同</b> <p> How to execute jQuery logic correctly after your View has been rendered?(在 View 渲染完之后如何正确的执行 jQuery 代码?) <em>2013-08-01</em> </p> <p> Reusable D3 charts with Ember.js Components<br><br> <p><em>一位韩国女 JS 工程师写的 DS 与 Ember 的整合</em></p> </p> <b>综合</b> <p> Balint Erdi <em>干货很多的一家</em> </p> <p> Ember Conf 2014<br><br> <p><em>Ember 社区的官方技术会议,干货超多,有全部视频放出</em></p> </p> <p> Atomic Spin<br><br> <p><em>Highly recommended!</em></p> </p> <p> Ember Doc<br><br> <p><em>和官网那个 API 内容一样,但是访问速度快,界面也有改善,查询浏览更方便——但是我有 Dash ^^</em></p> </p> <p> Pixel Handler"s Blog<br><br> <p><em>This Guy is Awesome!</em></p> </p> <p> The Software Simpleton<br><br> <p><em>So does him!</em></p> </p> <p> Yanted<br><br> <p><em>Only 3 useful posts</em></p> </p> <p> Ember Addons<br><br> <p><em>这里有各种干货,拿来用或参考都不错</em></p> </p> <p> Ember Sherpa<br><br> <p><em>It actually doesn"t have too many informations right now, but it has the potential to be a great resource.</em></p> </p> <p> Code Berry<br><br> <p><em>ZOMG!这么多好东西!!I LOVE THIS BLOG!!!</em></p> </p> <b>实例</b> <p>Simple Reach</p> <pre>App.PostRoute = Ember.Route.extend beforeModel: -> Ember.$("body").addClass "loading" model: (params) -> @store.find "post", params.post_id # we can"t use `afterModel` here to cancel the loading animation # because the comments request has not been resolved yet # following is an idea to use Ember.RSVP to make a dedicated promise # for unfulfilled comments request: setupController: (post, controller) -> comments = Ember.RSVP.makePromise(post.get "comments") comments.then -> Ember.run.scheduleOnce "afterRender", @, -> Ember.$("body").removeClass "loading" </pre> <pre>Ember.View.reopen({ didInsertElement : function(){ this._super(); Ember.run.scheduleOnce("afterRender", this, this.afterRenderEvent); }, afterRenderEvent : function(){ // implement this hook in your own subclasses and run your jQuery logic there } }); </pre> </div> <div class="mt-64 tags-seach" > <div class="tags-info"> <a style="width:120px;" title="云服务器" href="https://www.ucloud.cn/site/active/kuaijiesale.html?ytag=seo">云服务器</a> <a style="width:120px;" title="GPU云服务器" href="https://www.ucloud.cn/site/product/gpu.html">GPU云服务器</a> <a style="width:120px;" title="ember.js" href="https://www.ucloud.cn/yun/tag/ember.js/">ember.js</a> <a style="width:120px;" title="ember.js介绍" href="https://www.ucloud.cn/yun/tag/ember.jsjieshao/">ember.js介绍</a> <a style="width:120px;" title="资源列表" href="https://www.ucloud.cn/yun/tag/ziyuanliebiao/">资源列表</a> <a style="width:120px;" title="导出ecs资源列表" href="https://www.ucloud.cn/yun/tag/daochuecsziyuanliebiao/">导出ecs资源列表</a> </div> </div> <div class="entry-copyright mb-30"> <p class="mb-15"> 文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。</p> <p>转载请注明本文地址:https://www.ucloud.cn/yun/78036.html</p> </div> <ul class="pre-next-page"> <li class="ellipsis"><a class="hpf" href="https://www.ucloud.cn/yun/78035.html">上一篇:解决JQUERY在IE8,7,6下将字符串转成XML对象时产生的BUG</a></li> <li class="ellipsis"><a class="hpf" href="https://www.ucloud.cn/yun/78037.html">下一篇:关于技术的一点牢骚话</a></li> </ul> </div> <div class="about_topicone-mid"> <h3 class="top-com-title mb-0"><span data-id="0">相关文章</span></h3> <ul class="com_white-left-mid atricle-list-box"> <li> <div class="atricle-list-right"> <h2 class="ellipsis2"><a class="hpf" href="https://www.ucloud.cn/yun/77996.html"><b>Day 19: <em>Ember</em><em>JS</em> 入门指南</b></a></h2> <p class="ellipsis2 good">摘要:在文件夹内创建,内容如下创建,内容如下使用安装依赖在的头部加入调用命令,同时在你的默认浏览器中打开。最后,我们更新下,给每个报道添加链接修改完毕地后,可以在浏览器中直接看到结果。 编者注:我们发现了有趣的系列文章《30天学习30种新技术》,正在翻译,一天一篇更新,年终礼包。下面是第19天的内容。 到目前为止,我们这一系列文章涉及了Bower、AngularJS、GruntJS、P...</p> <div class="com_white-left-info"> <div class="com_white-left-infol"> <a href="https://www.ucloud.cn/yun/u-193.html"><img src="https://www.ucloud.cn/yun/data/avatar/000/00/01/small_000000193.jpg" alt=""><span class="layui-hide64">awesome23</span></a> <time datetime="">2019-08-19 14:29</time> <span><i class="fa fa-commenting"></i>评论0</span> <span><i class="fa fa-star"></i>收藏0</span> </div> </div> </div> </li> <li> <div class="atricle-list-right"> <h2 class="ellipsis2"><a class="hpf" href="https://www.ucloud.cn/yun/86351.html"><b>adapter与serializer使用示例一</b></a></h2> <p class="ellipsis2 good">摘要:由于能力有限本示例不会完全自定义适配器和序列化器,示例仍然是使用官方推荐方式,重写或者扩展以实现自定适配器和序列化器。在序列化器中调用响应请求的方法格式化返回的数据。上述就是的一个简单实用示例。 文章来源:http://xcoding.tech/tags/Emberjs欢迎访问源网站Ember Teach,Ember Teach致力于为您提供最权威、最前沿的Ember技术教程。。 ad...</p> <div class="com_white-left-info"> <div class="com_white-left-infol"> <a href="https://www.ucloud.cn/yun/u-907.html"><img src="https://www.ucloud.cn/yun/data/avatar/000/00/09/small_000000907.jpg" alt=""><span class="layui-hide64">Near_Li</span></a> <time datetime="">2019-08-21 10:53</time> <span><i class="fa fa-commenting"></i>评论0</span> <span><i class="fa fa-star"></i>收藏0</span> </div> </div> </div> </li> <li> <div class="atricle-list-right"> <h2 class="ellipsis2"><a class="hpf" href="https://www.ucloud.cn/yun/79664.html"><b>使用service实现登录、权限控制</b></a></h2> <p class="ellipsis2 good">摘要:就没必要动牛刀,创建一个数据库了执行完后,在目录下创建一个程序,自动植入到当前项目中,访问的和与访问域名端口一致。就没必要动牛刀,创建一个数据库了本篇博文将为你介绍如何使用实现权限控制,我会创建一个简单的登录示例加以说明。 文章来源:http://blog.ddlisting.com 官网对于登录、用户权限的介绍只有一段简单的说明,并没有详细说明如何使用service实现权限控制。下面...</p> <div class="com_white-left-info"> <div class="com_white-left-infol"> <a href="https://www.ucloud.cn/yun/u-346.html"><img src="https://www.ucloud.cn/yun/data/avatar/000/00/03/small_000000346.jpg" alt=""><span class="layui-hide64">Aomine</span></a> <time datetime="">2019-08-19 18:32</time> <span><i class="fa fa-commenting"></i>评论0</span> <span><i class="fa fa-star"></i>收藏0</span> </div> </div> </div> </li> <li> <div class="atricle-list-right"> <h2 class="ellipsis2"><a class="hpf" href="https://www.ucloud.cn/yun/90992.html"><b><em>Ember</em>.<em>js</em>第七章——测试</b></a></h2> <p class="ellipsis2 good">摘要:集成测试集成测试是处于单元测试和验收测试之间的测试。集成测试目的是验证客户端与全系统交互,所有单元测试,以及微观层面具体代码的算法逻辑是否都能通过。集成测试用来验证应用程序各个模块相互关系,比如若干个控件之间的行为。 测试简介 测试是Ember。js框架开发环节中很重要的一环。 现在假设你正在利用Ember框架开发一个博客系统,这个系统包含user和post模型,有登录及创建博客的操作...</p> <div class="com_white-left-info"> <div class="com_white-left-infol"> <a href="https://www.ucloud.cn/yun/u-738.html"><img src="https://www.ucloud.cn/yun/data/avatar/000/00/07/small_000000738.jpg" alt=""><span class="layui-hide64">iliyaku</span></a> <time datetime="">2019-08-22 10:39</time> <span><i class="fa fa-commenting"></i>评论0</span> <span><i class="fa fa-star"></i>收藏0</span> </div> </div> </div> </li> <li> <div class="atricle-list-right"> <h2 class="ellipsis2"><a class="hpf" href="https://www.ucloud.cn/yun/91636.html"><b><em>Ember</em>.<em>js</em>如何与后端服务交互?adapter、store、<em>ember</em> data关系揭秘</b></a></h2> <p class="ellipsis2 good">摘要:目前打算本项目使用种数据交互方式一种是,一种是。要理解后端服务的关系我们从他们各自的概念入手。创建服务端如何在项目中创建服务端程序呢提供了创建的命令。 文章来源:Ember Teach 本项目讲解如何使用adapter、EmberData以及怎么连接到本地数据库。 项目简介 主要内容 适配器使用 如何持久化数据到本地数据库 简单的后端服务 最近经常有初学的开发者请教有关Adapte...</p> <div class="com_white-left-info"> <div class="com_white-left-infol"> <a href="https://www.ucloud.cn/yun/u-1446.html"><img src="https://www.ucloud.cn/yun/data/avatar/000/00/14/small_000001446.jpg" alt=""><span class="layui-hide64">huhud</span></a> <time datetime="">2019-08-22 11:01</time> <span><i class="fa fa-commenting"></i>评论0</span> <span><i class="fa fa-star"></i>收藏0</span> </div> </div> </div> </li> </ul> </div> <div class="topicone-box-wangeditor"> <h3 class="top-com-title mb-64"><span>发表评论</span></h3> <div class="xcp-publish-main flex_box_zd"> <div class="unlogin-pinglun-box"> <a href="javascript:login()" class="grad">登陆后可评论</a> </div> </div> </div> <div class="site-box-content"> <div class="site-content-title"> <h3 class="top-com-title mb-64"><span>0条评论</span></h3> </div> <div class="pages"></ul></div> </div> </div> <div class="layui-col-md4 layui-col-lg3 com_white-right site-wrap-right"> <div class=""> <div class="com_layuiright-box user-msgbox"> <a href="https://www.ucloud.cn/yun/u-908.html"><img src="https://www.ucloud.cn/yun/data/avatar/000/00/09/small_000000908.jpg" alt=""></a> <h3><a href="https://www.ucloud.cn/yun/u-908.html" rel="nofollow">Yangyang</a></h3> <h6>男<span>|</span>高级讲师</h6> <div class="flex_box_zd user-msgbox-atten"> <a href="javascript:attentto_user(908)" id="attenttouser_908" class="grad follow-btn notfollow attention">我要关注</a> <a href="javascript:login()" title="发私信" >我要私信</a> </div> <div class="user-msgbox-list flex_box_zd"> <h3 class="hpf">TA的文章</h3> <a href="https://www.ucloud.cn/yun/ut-908.html" class="box_hxjz">阅读更多</a> </div> <ul class="user-msgbox-ul"> <li><h3 class="ellipsis"><a href="https://www.ucloud.cn/yun/125079.html">【C语言趣味教程】typedef 真爽不爽不要玩 | 初识结构体</a></h3> <p>阅读 1770<span>·</span>2021-11-25 09:43</p></li> <li><h3 class="ellipsis"><a href="https://www.ucloud.cn/yun/120336.html">主机数主机位怎么求-主机地址数如何计算?</a></h3> <p>阅读 15321<span>·</span>2021-09-22 15:11</p></li> <li><h3 class="ellipsis"><a href="https://www.ucloud.cn/yun/115473.html">JQuery+css3实现滑动开关效果</a></h3> <p>阅读 2622<span>·</span>2019-08-30 13:19</p></li> <li><h3 class="ellipsis"><a href="https://www.ucloud.cn/yun/115155.html">CSS魔法堂:Absolute Positioning就这个样</a></h3> <p>阅读 2008<span>·</span>2019-08-30 12:54</p></li> <li><h3 class="ellipsis"><a href="https://www.ucloud.cn/yun/112371.html">box-shadow常用技巧总结</a></h3> <p>阅读 1815<span>·</span>2019-08-29 13:06</p></li> <li><h3 class="ellipsis"><a href="https://www.ucloud.cn/yun/110067.html">jQuery验证年龄</a></h3> <p>阅读 922<span>·</span>2019-08-26 14:07</p></li> <li><h3 class="ellipsis"><a href="https://www.ucloud.cn/yun/106763.html">js中会改变原数组的一些方法</a></h3> <p>阅读 1611<span>·</span>2019-08-26 10:47</p></li> <li><h3 class="ellipsis"><a href="https://www.ucloud.cn/yun/106614.html">对列布局columns的理解</a></h3> <p>阅读 3027<span>·</span>2019-08-26 10:41</p></li> </ul> </div> <!-- 文章详情右侧广告--> <div class="com_layuiright-box"> <h6 class="top-com-title"><span>最新活动</span></h6> <div class="com_adbox"> <div class="layui-carousel" id="right-item"> <div carousel-item> <div> <a href="https://www.ucloud.cn/site/active/kuaijiesale.html?ytag=seo" rel="nofollow"> <img src="https://www.ucloud.cn/yun/data/attach/240625/2rTjEHmi.png" alt="云服务器"> </a> </div> <div> <a href="https://www.ucloud.cn/site/product/gpu.html" rel="nofollow"> <img src="https://www.ucloud.cn/yun/data/attach/240807/7NjZjdrd.png" alt="GPU云服务器"> </a> </div> </div> </div> </div> <!-- banner结束 --> <div class="adhtml"> </div> <script> $(function(){ $.ajax({ type: "GET", url:"https://www.ucloud.cn/yun/ad/getad/1.html", cache: false, success: function(text){ $(".adhtml").html(text); } }); }) </script> </div> </div> </div> </div> </div> </section> <!-- wap拉出按钮 --> <div class="site-tree-mobile layui-hide"> <i class="layui-icon layui-icon-spread-left"></i> </div> <!-- wap遮罩层 --> <div class="site-mobile-shade"></div> <!--付费阅读 --> <div id="payread"> <div class="layui-form-item">阅读需要支付1元查看</div> <div class="layui-form-item"><button class="btn-right">支付并查看</button></div> </div> <script> var prei=0; $(".site-seo-depict pre").each(function(){ var html=$(this).html().replace("<code>","").replace("</code>","").replace('<code class="javascript hljs" codemark="1">',''); $(this).attr('data-clipboard-text',html).attr("id","pre"+prei); $(this).html("").append("<code>"+html+"</code>"); prei++; }) $(".site-seo-depict img").each(function(){ if($(this).attr("src").indexOf('data:image/svg+xml')!= -1){ $(this).remove(); } }) $("LINK[href*='style-49037e4d27.css']").remove(); $("LINK[href*='markdown_views-d7a94ec6ab.css']").remove(); layui.use(['jquery', 'layer','code'], function(){ $("pre").attr("class","layui-code"); $("pre").attr("lay-title",""); $("pre").attr("lay-skin",""); layui.code(); $(".layui-code-h3 a").attr("class","copycode").html("复制代码 ").attr("onclick","copycode(this)"); }); function copycode(target){ var id=$(target).parent().parent().attr("id"); var clipboard = new ClipboardJS("#"+id); clipboard.on('success', function(e) { e.clearSelection(); alert("复制成功") }); clipboard.on('error', function(e) { alert("复制失败") }); } //$(".site-seo-depict").html($(".site-seo-depict").html().slice(0, -5)); </script> <link rel="stylesheet" type="text/css" href="https://www.ucloud.cn/yun/static/js/neweditor/code/styles/tomorrow-night-eighties.css"> <script src="https://www.ucloud.cn/yun/static/js/neweditor/code/highlight.pack.js" type="text/javascript"></script> <script src="https://www.ucloud.cn/yun/static/js/clipboard.js"></script> <script>hljs.initHighlightingOnLoad();</script> <script> function setcode(){ var _html=''; document.querySelectorAll('pre code').forEach((block) => { var _tmptext=$.trim($(block).text()); if(_tmptext!=''){ _html=_html+_tmptext; console.log(_html); } }); } </script> <script> function payread(){ layer.open({ type: 1, title:"付费阅读", shadeClose: true, content: $('#payread') }); } // 举报 function jupao_tip(){ layer.open({ type: 1, title:false, shadeClose: true, content: $('#jubao') }); } $(".getcommentlist").click(function(){ var _id=$(this).attr("dataid"); var _tid=$(this).attr("datatid"); $("#articlecommentlist"+_id).toggleClass("hide"); var flag=$("#articlecommentlist"+_id).attr("dataflag"); if(flag==1){ flag=0; }else{ flag=1; //加载评论 loadarticlecommentlist(_id,_tid); } $("#articlecommentlist"+_id).attr("dataflag",flag); }) $(".add-comment-btn").click(function(){ var _id=$(this).attr("dataid"); $(".formcomment"+_id).toggleClass("hide"); }) $(".btn-sendartcomment").click(function(){ var _aid=$(this).attr("dataid"); var _tid=$(this).attr("datatid"); var _content=$.trim($(".commenttext"+_aid).val()); if(_content==''){ alert("评论内容不能为空"); return false; } var touid=$("#btnsendcomment"+_aid).attr("touid"); if(touid==null){ touid=0; } addarticlecomment(_tid,_aid,_content,touid); }) $(".button_agree").click(function(){ var supportobj = $(this); var tid = $(this).attr("id"); $.ajax({ type: "GET", url:"https://www.ucloud.cn/yun/index.php?topic/ajaxhassupport/" + tid, cache: false, success: function(hassupport){ if (hassupport != '1'){ $.ajax({ type: "GET", cache:false, url: "https://www.ucloud.cn/yun/index.php?topic/ajaxaddsupport/" + tid, success: function(comments) { supportobj.find("span").html(comments+"人赞"); } }); }else{ alert("您已经赞过"); } } }); }); function attenquestion(_tid,_rs){ $.ajax({ //提交数据的类型 POST GET type:"POST", //提交的网址 url:"https://www.ucloud.cn/yun/favorite/topicadd.html", //提交的数据 data:{tid:_tid,rs:_rs}, //返回数据的格式 datatype: "json",//"xml", "html", "script", "json", "jsonp", "text". //在请求之前调用的函数 beforeSend:function(){}, //成功返回之后调用的函数 success:function(data){ var data=eval("("+data+")"); console.log(data) if(data.code==2000){ layer.msg(data.msg,function(){ if(data.rs==1){ //取消收藏 $(".layui-layer-tips").attr("data-tips","收藏文章"); $(".layui-layer-tips").html('<i class="fa fa-heart-o"></i>'); } if(data.rs==0){ //收藏成功 $(".layui-layer-tips").attr("data-tips","已收藏文章"); $(".layui-layer-tips").html('<i class="fa fa-heart"></i>') } }) }else{ layer.msg(data.msg) } } , //调用执行后调用的函数 complete: function(XMLHttpRequest, textStatus){ postadopt=true; }, //调用出错执行的函数 error: function(){ //请求出错处理 postadopt=false; } }); } </script> <footer> <div class="layui-container"> <div class="flex_box_zd"> <div class="left-footer"> <h6><a href="https://www.ucloud.cn/"><img src="https://www.ucloud.cn/yun/static/theme/ukd//images/logo.png" alt="UCloud (优刻得科技股份有限公司)"></a></h6> <p>UCloud (优刻得科技股份有限公司)是中立、安全的云计算服务平台,坚持中立,不涉足客户业务领域。公司自主研发IaaS、PaaS、大数据流通平台、AI服务平台等一系列云计算产品,并深入了解互联网、传统企业在不同场景下的业务需求,提供公有云、混合云、私有云、专有云在内的综合性行业解决方案。</p> </div> <div class="right-footer layui-hidemd"> <ul class="flex_box_zd"> <li> <h6>UCloud与云服务</h6> <p><a href="https://www.ucloud.cn/site/about/intro/">公司介绍</a></p> <p><a href="https://zhaopin.ucloud.cn/" >加入我们</a></p> <p><a href="https://www.ucloud.cn/site/ucan/onlineclass/">UCan线上公开课</a></p> <p><a href="https://www.ucloud.cn/site/solutions.html" >行业解决方案</a></p> <p><a href="https://www.ucloud.cn/site/pro-notice/">产品动态</a></p> </li> <li> <h6>友情链接</h6> <p><a href="https://www.compshare.cn/?ytag=seo">GPU算力平台</a></p> <p><a href="https://www.ucloudstack.com/?ytag=seo">UCloud私有云</a></p> <p><a href="https://www.surfercloud.com/">SurferCloud</a></p> <p><a href="https://www.uwin-link.com/">工厂仿真软件</a></p> <p><a href="https://pinex.it/">Pinex</a></p> <p><a href="https://www.picpik.ai/zh">AI绘画</a></p> </li> <li> <h6>社区栏目</h6> <p><a href="https://www.ucloud.cn/yun/column/index.html">专栏文章</a></p> <p><a href="https://www.ucloud.cn/yun/udata/">专题地图</a></p> </li> <li> <h6>常见问题</h6> <p><a href="https://www.ucloud.cn/site/ucsafe/notice.html" >安全中心</a></p> <p><a href="https://www.ucloud.cn/site/about/news/recent/" >新闻动态</a></p> <p><a href="https://www.ucloud.cn/site/about/news/report/">媒体动态</a></p> <p><a href="https://www.ucloud.cn/site/cases.html">客户案例</a></p> <p><a href="https://www.ucloud.cn/site/notice/">公告</a></p> </li> <li> <span><img src="https://static.ucloud.cn/7a4b6983f4b94bcb97380adc5d073865.png" alt="优刻得"></span> <p>扫扫了解更多</p></div> </div> <div class="copyright">Copyright © 2012-2023 UCloud 优刻得科技股份有限公司<i>|</i><a rel="nofollow" href="http://beian.miit.gov.cn/">沪公网安备 31011002000058号</a><i>|</i><a rel="nofollow" href="http://beian.miit.gov.cn/"></a> 沪ICP备12020087号-3</a><i>|</i> <script type="text/javascript" src="https://gyfk12.kuaishang.cn/bs/ks.j?cI=197688&fI=125915" charset="utf-8"></script> <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?290c2650b305fc9fff0dbdcafe48b59d"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> <!-- Global site tag (gtag.js) - Google Analytics --> <script async src="https://www.googletagmanager.com/gtag/js?id=G-DZSMXQ3P9N"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-DZSMXQ3P9N'); </script> <script> (function(){ var el = document.createElement("script"); el.src = "https://lf1-cdn-tos.bytegoofy.com/goofy/ttzz/push.js?99f50ea166557aed914eb4a66a7a70a4709cbb98a54ecb576877d99556fb4bfc3d72cd14f8a76432df3935ab77ec54f830517b3cb210f7fd334f50ccb772134a"; el.id = "ttzz"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(el, s); })(window) </script></div> </div> </footer> </body> <script src="https://www.ucloud.cn/yun/static/theme/ukd/js/common.js"></script> <<script type="text/javascript"> $(".site-seo-depict *,.site-content-answer-body *,.site-body-depict *").css("max-width","100%"); </script> </html>