x

推荐测速 APP

  • 趋势分析

    掌控网站性能变化曲线,为网站速度优化提供有力的参考 [详细介绍]

  • 错误分析

    24小时监控数据的报错分析,网站在什么时间访问出错... [详细介绍]

  • 区域分析

    通过区域分析,迅速找出网站在哪些地方速度慢 [详细介绍]

  • ISP分析

    通过ISP分析,迅速找出网站在哪些运营商速度慢 [详细介绍]

  • 监测点分析

    提供监测点数据,以便反向查找问题 [详细介绍]

测速排名 今日 本周 本月

排名 域名 时间
1 WWW.MT0888.COM 0.868s
2 WWW.WWW.B118811.COM 0.541s
3 WWW.WWW.D598.COM 0.988s
4 WWW.YH8329.COM 0.158s
5 WWW.YH669993.COM 0.526s
6 WWW.CNHAIMEI.COM 0.728s
7 WWW.WWW.ZZ71.COM 0.300s
8 WWW.8426.COM 0.740s
9 WWW.YTH88.COM 0.733s
10 WWW.XG565.COM 0.927s

最新测速

域名 类型 时间
WWW.WWW.HG8721.COM get 0.751s
WWW.TYC026.COM get 1.512s
WWW.JZPLY88.COM get 0.956s
WWW.534.CC get 0.396s
WWW.WWW.HG51678.COM get 0.864s
WWW.S08123.COM get 0.139s
WWW.WWW.KKK999.CN get 0.587s
WWW.WWW.9A9A9.COM get 0.457s
WWW.WWW.378878.COM get 1.45s
WWW.H7111.COM get 0.488s

 

在线威尼斯人WWW.BMW888.COM_澳门新葡新京WWW.BMW888.COM

闆峰啗锛氬皬绫矼IX Alpha涓嶆槸鎶樺彔灞忔墜鏈恒侀瑕嗘ф蹇垫墜鏈哄緢闇囨捈 灏忕背姝e紡鏀惧嚭娑堟伅锛屽皢浼氬湪9鏈24鏃ュ彂甯冨皬绫矼IX 5G鏃朵唬姒傚康鎵嬫満锛屽皬绫矼IX Alpha銆

浣滀负涓绉嶅姩鎬佺被鍨嬬殑璇█锛孯uby涓嶄絾鍙敤浜庢敹闆嗗瀮鍦撅紝鑰屼笖鑳藉鏀寔澶氱缂栫▼鑼冧緥锛屽叾涓寘鎷細鍚勭绋嬪簭銆侀潰鍚戝璞$殑鍑芥暟绛夈

鏁版嵁浼氳嚜鍔ㄥ埛鏂帮紝鍖哄埆浜庝紶缁熺殑绂荤嚎璁$畻锛屽彧鑳界湅鍒版槰澶╃殑鏁版嵁銆

浣滀负PM涔熶笉闇瑕佷簡瑙i潪甯告繁濂ョ殑蹇冪悊瀛﹀鏉傜悊璁猴紝杩欎釜鏄笓涓氱敤鐮斾汉鍛橀渶瑕佸仛鐨勪簨鎯呫

YouTube鐨勮繖涓鍐冲畾涔熻璁や负鏄嚜鍏惰癁鐢熶互鏉ョ殑涓椤归噸澶ц浆鍨嬨

姝e鑻规灉闅忓悗鍦ㄥ畼缃戞弿杩扮殑閭f牱锛岄煶棰戝叡浜姛鑳藉皢澶氬 AirPods 涓庝竴閮ㄦ墜鏈洪厤瀵癸紝骞朵竴璧锋敹鍚浉鍚岀殑闊抽锛孭owerbeats Pro 涔熸敮鎸佽鍔熻兘銆

杩樻湁灏辨槸姣忔潯浜у搧绾块兘鏈変氦鏄撻銆佹敹鍏ョ殑kpi锛屽彲浠ラ拡瀵规荤殑浜ゆ槗棰濆仛涓涓媶瑙o紝姣忔潯绾跨殑浜ゆ槗棰濄佹敹鍏ャ佸畬鎴愮巼銆

鑰屼笁鎸囩帺瀹跺鏁版儏鍐典笅鏄袱涓乏鍙虫媷鎸囪繘琛屼汉鐗╃Щ鍔ㄥ強鐬勫噯锛岀涓夋墜鎸囪礋璐e皠鍑伙紝璇ラ棶棰樺湪銆婂拰骞崇簿鑻便嬭繖绫诲浜哄鎴樹腑鏃犵枒鏄嚧鍛界殑锛屽洜涓虹帺瀹跺湪閬亣鏁屼汉鏃跺凡鏃犳硶鎺у嚭澶氫綑鐨勬椂闂寸敤浠ュ弽搴旀秷闄ゆ枃鏈紪杈戞銆

鏈変汉澶辨湜鍦拌瘎浠疯锛孭ewDiePie鏄痀ouTube鏈簲璇ユ垚涓虹殑鏍峰瓙锛孴-Series鍒欐槸YouTube鐜板湪鍙樻垚鐨勬牱瀛愩

寰堟槑鏄撅紝骞垮憡鍒嗘垚褰掓牴鍒板簳杩樻槸鍦ㄨ禋娴侀噺鐨勯挶锛屾崲鍙ヨ瘽璇达紝骞垮憡鏀跺叆瀵逛簬娴侀噺鐨勪緷璧栬姣斿崠璐ф敹鍏ラ珮寰堝銆

浜嬪悗鏈変笉灏戜汉鍚愮碂鑷繁鐨勯槦鍙嬮噷闈㈡湁娴戞按鎽搁奔鐨勶紝缁勪簡鎴橀槦鍗翠笉浠樺嚭鍔姏銆

鍔ㄦ佽涔 - 蹇呴』鎸囩ず鏈哄櫒鏉ュ鏁版嵁鎵ц鍚勭鎿嶄綔銆

涓嬮潰鎴戜滑鏉ラ愪竴杩涜璁ㄨ銆

@鍖椾含鍟嗘姤銆愪簤璁婄幇浠f眽璇瘝鍏搞婣pp鏀惰垂锛屽伐鍏蜂功鍟嗘満鍦ㄥ摢銆戠户銆婃柊鍗庤瘝鍏搞嬬瓑宸ュ叿涔︽帹鍑篈pp鍚庯紝鍙堜竴鏈瘝鍏稿姞鍏ヤ簡甯冨眬绾夸笂鐨勮鍒椼

var default_decoration = BoxDecoration( border: Border.all(width: 3, color: Colors.deepOrange), borderRadius: BorderRadius.all( Radius.circular(5), )); ... ... child: Container( margin: EdgeInsets.all(8), decoration: default_decoration, child: widget.child, )); 鏈鍚庣粰澶у涓涓畬鏁寸殑鏈鏂扮殑鎶鏈柟妗堢殑渚嬪瓙浠g爜: 鍏堢粯鍒舵杩庨〉锛屾晥鏋滃浘濡備笅: 浠g爜濡備笅: // 鍚姩娆㈣繋椤 import dart:async; import package:flutter/material.dart; import package:flutter/services.dart; import ui/tv_page.dart; void main => runApp(MyApp); class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { SystemChrome.setEnabledSystemUIOverlays([]); // 寮哄埗妯睆 SystemChrome.setPreferredOrientations([ DeviceOrientation.landscapeLeft, DeviceOrientation.landscapeRight ]); return MaterialApp( title: Flutter TV, debugShowCheckedModeBanner: false, theme: ThemeData( primarySwatch: Colors.blue, ), home: MyHomePage, ); } } class MyHomePage extends StatefulWidget { @override _MyHomePageState createState => _MyHomePageState; } class _MyHomePageState extends State<MyHomePage> { Timer timer; @override void initState { startTimeout; super.initState; } @override Widget build(BuildContext context) { return Scaffold( primary: true, backgroundColor: Colors.black54, body: Center( child: Text( 鑺掓灉TV, style: TextStyle( fontSize: 50, color: Colors.deepOrange, fontWeight: FontWeight.normal), ), ), ); } _toPage { Navigator.pushAndRemoveUntil( context, MaterialPageRoute(builder: (context) => TVPage), (route) => route == null, ); } //鍊掕鏃跺鐞 static const timeout = const Duration(seconds: 3); startTimeout { timer = Timer(timeout, handleTimeout); return timer; } void handleTimeout { _toPage; } @override void dispose { if (timer != null) { timer.cancel; timer = null; } super.dispose; } } 搴旂敤棣栭〉锛屾晥鏋滃浘濡備笅: 浠g爜濡備笅: // 搴旂敤棣栭〉 import dart:async; import package:flutter/material.dart; import package:flutter/services.dart; import package:flutter_tv/utils/time_utils.dart; import package:flutter_tv/widgets/tv_widget.dart; import home_page.dart; import list_page.dart; class TVPage extends StatefulWidget { @override State<StatefulWidget> createState { SystemChrome.setEnabledSystemUIOverlays([]); // 寮哄埗妯睆 SystemChrome.setPreferredOrientations( [DeviceOrientation.landscapeLeft, DeviceOrientation.landscapeRight]); return TVPageState; } } class TVPageState extends State<TVPage> with SingleTickerProviderStateMixin { TabController _tabController; Timer timer; var timeString = TimeUtils.getTime; bool init = false; FocusNode focusNodeB0 = FocusNode; FocusNode focusNodeB1 = FocusNode; @override void initState { super.initState; //initialIndex涓哄垵濮嬮変腑绗嚑涓紝length涓烘暟閲 _tabController = TabController(initialIndex: 0, length: 8, vsync: this); // 鐩戝惉 _tabController.addListener( { switch (_tabController.index) { case 0: break; case 1: break; } }); focusNodeB0.addListener( { if (focusNodeB0.hasFocus) { setState( { _tabController.animateTo(0); }); } }); focusNodeB1.addListener( { if (focusNodeB1.hasFocus) { setState( { _tabController.animateTo(1); }); } }); } @override Widget build(BuildContext context) { return Container( color: Colors.black87, padding: EdgeInsets.all(30), child: Scaffold( appBar: AppBar( backgroundColor: Colors.black87, leading: Icon( Icons.live_tv, color: Colors.deepOrange, size: 50, ), title: Text( 鑺掓灉TV, style: TextStyle( fontSize: 30, color: Colors.white, fontStyle: FontStyle.italic), ), primary: true, actions: <Widget>[ FlatButton( child: Text( $timeString, style: TextStyle(color: Colors.white), ), ), ], // 璁剧疆TabBar bottom: TabBar( controller: _tabController, indicatorColor: Colors.deepOrange, labelColor: Colors.deepOrange, unselectedLabelColor: Colors.white, tabs: <Widget>[ Tab( child: TVWidget( hasDecoration: false, focusChange: (hasFocus) { if (hasFocus) { setState( { _tabController.animateTo(0); }); } }, child: Text( 棣栭〉, style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold), ), requestFocus: true, ), ), Tab( child: TVWidget( hasDecoration: false, focusChange: (hasFocus) { if (hasFocus) { setState( { _tabController.animateTo(1); }); } }, child: Text( 绮鹃, style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold), ), )), Tab( child: TVWidget( hasDecoration: false, focusChange: (hasFocus) { if (hasFocus) { setState( { _tabController.animateTo(2); }); } }, onclick: { print(鐐瑰嚮); }, child: Text( 鍥戒骇, style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold), ), )), Tab( child: TVWidget( hasDecoration: false, focusChange: (hasFocus) { if (hasFocus) { setState( { _tabController.animateTo(3); }); } }, child: Text( 娆х編, style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold), ), )), Tab( child: TVWidget( hasDecoration: false, focusChange: (hasFocus) { if (hasFocus) { setState( { _tabController.animateTo(4); }); } }, child: Text( 鏃ユ极, style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold), ), ), ), Tab( child: TVWidget( hasDecoration: false, focusChange: (hasFocus) { if (hasFocus) { setState( { _tabController.animateTo(5); }); } }, child: Text( 浜插瓙, style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold), ), ), ), Tab( child: TVWidget( hasDecoration: false, focusChange: (hasFocus) { if (hasFocus) { setState( { _tabController.animateTo(6); }); } }, child: Text( 灏戠患, style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold), ), ), ), Tab( child: TVWidget( focusChange: (hasFocus) { if (hasFocus) { setState( { _tabController.animateTo(7); }); } }, hasDecoration: false, child: Text( 鍒嗙被, style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold), ), ), ), ], ), ), body: TabBarView( controller: _tabController, children: <Widget>[ HomePage, ListPage, HomePage, ListPage, HomePage, ListPage, HomePage, ListPage, ], ), ), ); } startTimeout { timer = Timer.periodic(Duration(minutes: 1), (t) { setState( { timeString = TimeUtils.getTime; }); }); } @override void dispose { if (timer != null) { timer.cancel; timer == null; } super.dispose; } } // TAB椤甸潰涓殑鍏朵腑涓涓〉闈紝鍏朵粬绫讳技 import package:flutter/material.dart; import package:flutter/widgets.dart; import package:flutter_tv/widgets/tv_widget.dart; class HomePage extends StatefulWidget { const HomePage({ Key key, @required this.index, }) : super(key: key); final int index; @override State<StatefulWidget> createState { return HomePageState; } } class HomePageState extends State<HomePage> with AutomaticKeepAliveClientMixin { @override void initState { super.initState; } @override Widget build(BuildContext context) { return Container( color: Colors.black87, child: Row( children: <Widget>[ Flexible( child: Column( children: <Widget>[ _buildItem(0), _buildItem(1), _buildItem(2), ], ), flex: 1, ), Flexible( child: Column( children: <Widget>[ _buildImageItem(3, 2), Expanded( flex: 1, child: Row( children: <Widget>[ _buildImageItem(4, 1), _buildImageItem(5, 1), ], )), ], ), flex: 4, ), Flexible( child: Column( children: <Widget>[ _buildImageItem(6, 2), _buildImageItem(7, 1), ], ), flex: 2, ), Flexible( child: Column( children: <Widget>[ _buildImageItem(8, 2), _buildImageItem(9, 1), ], ), flex: 2, ), ], ), ); } _buildItem(int index) { return Expanded( child: TVWidget( focusChange: (hasfocus) {}, child: Container( width: MediaQuery.of(context).size.width, child: GestureDetector( child: Card( elevation: 5, margin: EdgeInsets.all(0), color: _colors.elementAt(index), child: Container( child: Column( crossAxisAlignment: CrossAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[ _icons.elementAt(index), _title.elementAt(index), ], ), ), ), onTap: { _click(index); }, ), )), flex: 1, ); } _buildImageItem(int index, int flex) { return Expanded( child: TVWidget( child: Container( width: MediaQuery.of(context).size.width, child: GestureDetector( child: Card( elevation: 5, margin: EdgeInsets.all(0), color: _colors.elementAt(index), child: Container( child: Stack( alignment: Alignment.bottomLeft, children: <Widget>[ ClipRRect( child: Image.asset( _images.elementAt(index), fit: BoxFit.fill, width: MediaQuery.of(context).size.width, height: MediaQuery.of(context).size.height, ), borderRadius: BorderRadius.all( Radius.circular(5), ), ), Container( width: MediaQuery.of(context).size.width, child: Column( mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.start, children: <Widget>[ _title.elementAt(index), index == 3 ? _des.elementAt(index) : SizedBox( height: 0, ), ], ), color: _colors.elementAt(index).withAlpha(240), padding: EdgeInsets.all(5), ), ], ), ), ), onTap: { _click(index); }, ), ), focusChange: (hasfocus) {}, ), flex: flex, ); } void _click(int index) { switch (index) { case 0: break; case 4: // Navigator.push(context, MaterialPageRoute(builder: (context) { // return AboutPage; // })); break; } } List<Icon> _icons = [ Icon( Icons.search, size: 38, color: Colors.white, ), Icon( Icons.history, size: 38, color: Colors.white, ), Icon( Icons.event, size: 38, color: Colors.white, ), Icon( Icons.share, size: 38, color: Colors.deepPurpleAccent, ), Icon( Icons.error_outline, size: 38, color: Colors.orange, ), Icon( Icons.settings, size: 38, color: Colors.red, ) ]; List<String> _images = [ assets/htpy.jpg, assets/htpy.jpg, assets/htpy.jpg, assets/htpy.jpg, assets/agzz.jpg, assets/amypj.jpg, assets/hmjz.jpg, assets/dxflqm.jpg, assets/lifeandpi.jpg, assets/nanasqc.jpg, ]; List<Color> _colors = [ Colors.red, Colors.orange, Colors.green, Colors.red, Colors.orange, Colors.green, Colors.orange, Colors.orange, Colors.orange, Colors.orange, ]; List<Text> _title = [ Text( 鎼滅储, style: TextStyle(color: Colors.white, fontSize: 18), ), Text( 鍘嗗彶, style: TextStyle(color: Colors.white, fontSize: 18), ), Text( 涓撻, style: TextStyle(color: Colors.white, fontSize: 18), ), Text( 鐜お骞虫磱, style: TextStyle(color: Colors.white, fontSize: 18), ), Text( 闃跨敇姝d紶, style: TextStyle(color: Colors.white, fontSize: 18), ), Text( 鍌叉參涓庡亸瑙, style: TextStyle(color: Colors.white, fontSize: 18), ), Text( 榛戠尗璀﹂暱, style: TextStyle(color: Colors.white, fontSize: 18), ), Text( 褰撳垢绂忔潵鏁查棬, style: TextStyle(color: Colors.white, fontSize: 18), ), Text( Life Or PI, style: TextStyle(color: Colors.white, fontSize: 18), ), Text( 鍝晩鍝晩绁炲幓鏉, style: TextStyle(color: Colors.white, fontSize: 18), ), ]; List<Text> _des = [ Text( 闈炲父濂界湅鐨勭數褰, style: TextStyle(color: Colors.white, fontSize: 12), ), Text( 璁剧疆瀵嗙爜閿, style: TextStyle(color: Colors.white, fontSize: 12), ), Text( 鍚愭Ы鍙嶉浣犵殑鎯虫硶, style: TextStyle(color: Color.fromRGBO(162, 162, 162, 1), fontSize: 16), ), Text( 闈炲父濂界湅鐨勭數褰, style: TextStyle(color: Colors.white, fontSize: 12), ), Text( 鐗堟湰淇℃伅, style: TextStyle(color: Color.fromRGBO(162, 162, 162, 1), fontSize: 16), ), Text( 绯荤粺鐩稿叧璁剧疆, style: TextStyle(color: Color.fromRGBO(162, 162, 162, 1), fontSize: 16), ), Text( 绯荤粺鐩稿叧璁剧疆, style: TextStyle(color: Color.fromRGBO(162, 162, 162, 1), fontSize: 16), ), ]; @override // TODO: implement wantKeepAlive bool get wantKeepAlive => true; } 灏佽鐨勬牳蹇冪被: // 灏佽鐨勬牳蹇冪劍鐐瑰鐞嗙被 import package:flutter/material.dart; import package:flutter/services.dart; import package:flutter/widgets.dart; class TVWidget extends StatefulWidget { TVWidget( {Key key, @required this.child, @required this.focusChange, @required this.onclick, @required this.decoration, @required this.hasDecoration = true, @required this.requestFocus = false}) : super(key: key); Widget child; onFocusChange focusChange; onClick onclick; bool requestFocus; BoxDecoration decoration; bool hasDecoration; @override State<StatefulWidget> createState { return TVWidgetState; } } typedef void onFocusChange(bool hasFocus); typedef void onClick; class TVWidgetState extends State<TVWidget> { FocusNode _focusNode; bool init = false; var default_decoration = BoxDecoration( border: Border.all(width: 3, color: Colors.deepOrange), borderRadius: BorderRadius.all( Radius.circular(5), )); var decoration = null; @override void initState { super.initState; _focusNode = FocusNode; _focusNode.addListener( { if (widget.focusChange != null) { widget.focusChange(_focusNode.hasFocus); } if (_focusNode.hasFocus) { setState( { if (widget.hasDecoration) { decoration = widget.decoration == null ? default_decoration : widget.decoration; } }); } else { setState( { decoration = null; }); } }); } @override Widget build(BuildContext context) { if (widget.requestFocus && !init) { FocusScope.of(context).requestFocus(_focusNode); init = true; } return RawKeyboardListener( focusNode: _focusNode, onKey: (event) { if (event is RawKeyDownEvent && event.data is RawKeyEventDataAndroid) { RawKeyDownEvent rawKeyDownEvent = event; RawKeyEventDataAndroid rawKeyEventDataAndroid = rawKeyDownEvent.data; print(keyCode: ${rawKeyEventDataAndroid.keyCode}); switch (rawKeyEventDataAndroid.keyCode) { case 19: //KEY_UP // DefaultFocusTraversal.of(context).inDirection( // FocusScope.of(context).focusedChild, TraversalDirection.up); FocusScope.of(context) .focusInDirection(TraversalDirection.up); break; case 20: //KEY_DOWN FocusScope.of(context) .focusInDirection(TraversalDirection.down); break; case 21: //KEY_LEFT // FocusScope.of(context).requestFocus(focusNodeB0); FocusScope.of(context) .focusInDirection(TraversalDirection.left); // 鎵嬪姩鎸囧畾涓嬩竴涓劍鐐 // FocusScope.of(context).requestFocus(focusNode); break; case 22: //KEY_RIGHT // FocusScope.of(context).requestFocus(focusNodeB1); FocusScope.of(context) .focusInDirection(TraversalDirection.right); // DefaultFocusTraversal.of(context) // .inDirection(_focusNode, TraversalDirection.right); // if(_focusNode.nextFocus){ // FocusScope.of(context) // .focusInDirection(TraversalDirection.right); // } break; case 23: //KEY_CENTER widget.onclick; break; case 66: //KEY_ENTER widget.onclick; break; default: break; } } }, child: Container( margin: EdgeInsets.all(8), decoration: decoration, child: widget.child, )); } } 濂戒簡锛屽叧浜嶧lutter TV寮鍙戝氨璁茶В杩欎箞澶氥

鎵浠ュ埆鎬绘兂鐫缁欑敤鎴锋渶濂界殑浣撻獙锛屽緢澶氭椂鍊欒鍙嶈繃鏉ユ兂锛氭槸涓嶆槸鍙互璁╃敤鎴蜂负鎴戜滑鐨勪骇鍝佸仛涓鐐逛粯鍑猴紵 21. 绱牸灏煎厠璁板繂鏁堝簲 瀹氫箟锛氬績鐞嗗瀹跺竷椴佺帥路绱牸灏煎厠鏇剧粡缁欎竴缇ゅ瀛愬竷缃簡浣滀笟锛屽ス鍙涓閮ㄥ垎瀛╁瓙瀹屾垚浣滀笟锛屽彟涓閮ㄥ垎鍒欐晠鎰忎护鍏朵腑閫斿仠椤裤

鍏跺疄涓寮濮嬪ぇ瀹堕兘璇翠簯璁$畻鍍忔按鍜岀數锛岃岄氱敤IAAS鏈嶅姟鎵嶆槸鏈鍍忔按鍜岀數鐨勯儴鍒嗐

浜哄璁㈠鍦ㄥ墠锛屾垜浠彁濠氬湪鍚庯紝鑲畾鏄湁鍙嶅簲鐨勶紝鎴戜滑鑳藉鐞嗚В

鍥涖佷簰鑱旂綉瀹惰鍙戝睍濂戞満 1. 娑堣垂涓讳綋鏇磋凯璇炵敓鏂扮殑娑堣垂闇姹 闅忕潃80銆90鍚庨愭杩涘叆閫傚骞撮緞锛屼即闅忕潃浜掕仈缃戞垚闀胯捣鏉ョ殑涓浠f垚涓轰簡涔版埧瑁呬慨鐨勪富鍔涘啗銆

鍙鏈潵娌″彂鐢燂紝澶у灏遍兘杩樻湁鏈轰細銆

2. 棣栧洜鏁堝簲 瀹氫箟锛氫篃绉版渶鍒濇晥搴旓紝鍦ㄦ讳綋鍗拌薄褰㈡垚涓婏紝鏈鍒濊幏寰楃殑淇℃伅姣斿悗鏉ヨ幏寰楃殑淇℃伅褰卞搷鏇村ぇ鐨勭幇璞★紝涔熷氨鏄涓鍗拌薄鍑犱箮鍐冲畾浜嗗埆浜哄浣犵殑鎬讳綋鍗拌薄銆

缁忓巻浜嗚繖涓鍒囷紝鍒涗綔鑰呭簲璇ユ劅鍒板紑蹇冿紝姣曠珶骞冲彴鐨勫喅绛栨渶缁堣繕鏄湞鐫瀵硅嚜宸辨湁鍒╃殑鏂瑰悜鍙戝睍浜嗭紝鍙互鍚嶆瑷椤哄湴甯﹁揣浜嗐

鍙鏈潵娌″彂鐢燂紝澶у灏遍兘杩樻湁鏈轰細銆

涓骇寮鍙戜汉鍛樼殑宸ヤ綔瑕佹眰鍖呮嫭锛氫簡瑙e悇绉岮ctive Record鍏宠仈锛岃璁℃ā寮忓拰闈㈠悜瀵硅薄銆

涓鑸鎴风鍒嗕负鑻规灉銆佸畨鍗撱丠5銆佸皬绋嬪簭銆佸叕浼楀彿锛堜竴鑸潵璇村叕浼楀彿鍙蜂篃鏄敤鐨凥5锛夛紝杩欐牱灏卞彲浠ヨ繘涓姝ョ缉灏忛棶棰橈紝鏇存柟渚挎煡鎵惧師鍥犮

鐢变簬Java鐨勫熀鏈娉曚笌Java鍜孋++鐩稿叧锛屽洜姝ら渶瑕侀噸鏂板涔犵殑鏂版蹇靛苟涓嶅銆