返回顶部
首页 > 资讯 > 前端开发 > html >怎么进行jQuery div弹出层的ajax登录
  • 692
分享到

怎么进行jQuery div弹出层的ajax登录

2024-04-02 19:04:59 692人浏览 独家记忆
摘要

这篇文章给大家介绍怎么进行Jquery div弹出层的ajax登录,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。div弹出层的ajax登录(Jquery版)这次本想做一个简易数据库管理

这篇文章给大家介绍怎么进行Jquery div弹出层的ajax登录,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

div弹出层的ajax登录(Jquery版)

这次本想做一个简易数据库管理的WEB版本,由于技术有限,现在只把登录界面做出来了,上次写了一个winform的简易查询分析器,地址:我的简易sql查询分析器

这次主要的分享就是div+CSS+jquery,你可以改版成你要的登录,随意改版!后台代码由于时间限制,没有完成,里面有些乱,重点分享界面,还望理解!

页面初始化,界面如图所示:

怎么进行jQuery div弹出层的ajax登录

Server name文本框获取焦点时候,界面如图所示(这里可以改成你登录的验证码):

怎么进行jQuery div弹出层的ajax登录

可以加载SQL Server服务列表,也是我的简易SQL查询分析器评论中静夜妙思给予的方法,非常感谢!

加载列表如下图所示:

怎么进行jQuery div弹出层的ajax登录

怎么进行jQuery div弹出层的ajax登录

可以随意地点击添加到Server name中,登录时截图所示:

怎么进行jQuery div弹出层的ajax登录

文本框验证都写好了!还有Authentication验证方式,windows验证下面Login,PassWord文本框禁掉!由于时间原因,不上图了。

demo.html(全部前台代码,js/css还没分文件存储)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "Http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  <html xmlns="http://www.w3.org/1999/xhtml">  <title>DataBase Test Demo</title>      <link href="js/treeview/jquery.treeview.css" rel="stylesheet" type="text/css" />      <!--<script src="js/jquery-1.4.2-vsdoc.js" type="text/javascript"></script>-->      <script src="js/jquery-1.4.2.min.js" type="text/javascript"></script>      <script src="js/treeview/jquery.treeview.js" type="text/javascript"></script>      <style type="text/css">      body{margin:0 auto;font-family:Verdana;font-size:12px;}      .top{margin:0 auto; width:100%; text-align:center; margin-top:20px;}      #browser{display:none;}      </style>  </head>  <body>  <div class="top"><h2>DataBase Test Demo</h2></div>  <ul id="browser" class="databasetree">          <li ><span class="server">SQL Server</span>              <ul>                  <li class="closed"><span class="folder">DataBases</span>                      <ul>                          <li class="closed"><span class="database">Test</span>                              <ul></ul>                          </li>                                                    </ul>                  </li>              </ul>          </li>  </ul>  <style type="text/css">  #greybackground{background: #000;display: block;z-index: 100;width: 100%;position: absolute;top: 0;left: 0; }  #login{margin:0 auto;width:420px;height:auto;border:solid 1px #ccc;position:absolute;z-index:200;background-color:#fff;}  #login .heard{width:420px; height:29px;background-image:url(images/top_bg.gif); border-bottom:solid 1px #ccc;}  #login .heard .left{float:left;line-height:29px;margin-right:2px;padding-left:10px; color:#5aa608;}  #login .heard .right{float:right;line-height:29px;margin-right:5px;}  #login .heard .right a{color:#999;text-decoration:none;}  #login .heard .right a:hover{color:red;text-decoration:underline;}  #login .content{width:420px; height:200px;}  #login .content li{ list-style:none; padding:5px 0px 5px 30px;}  #login .content .top{ width:100%; margin-top:5px;height:30px;line-height:30px;}  #login .content .top .left{ float:left;width:120px; text-align:right;}  #login .content .top .right{ float:right;width:280px;text-align:right;padding-right:20px;}  #login input,#login,select,#login,button{font-family:inherit;font-size:inherit;font-weight:inherit;*font-size:100%;}  #login input{width: 80%;padding: 7px 7px 6px;border-color: #B3B3B3 #EAEAEA #EAEAEA #B3B3B3;border-style: solid;border-width: 1px;color:black;}  #login select{width: 86%;padding: 7px 7px 6px; border-color: #B3B3B3 #EAEAEA #EAEAEA #B3B3B3;border-style: solid;border-width: 1px;color:black;}  #login button,#login .btn-submit,#login .button,#login .btn-submit:focus,#login .button:focus,.btn-submit,.button{border-left: 1px solid #C6C6C6;  border-right: 1px solid #DDDDDD;border-top: 1px solid #DDDDDD;border-bottom: 1px solid #C6C6C6;  cursor:pointer;width:auto;margin:0 10px 0 0;padding-bottom:3px;line-height:1.3em;  color:#515151;font-weight:bold;background:url(images/button.png) #e5e3e3 repeat-x 0 0;  height:32px;padding-left:12px;padding-right: 12px;padding-top: 6px;}  #login button:hover,#login .btn-submit:hover,.button:hover,.btn-submit:hover {background-image:none;}  #login .btn-submit,#login .btn-submit:focus,.btn-submit {width:auto;border-color:#5C91A4 #2B7089 #1A6480 #2A6F89;background-image:url(images/button_highlight.png);background-color:#4e85bb;color:#fff;}  #login .bottom-btn{width:90%; margin:0 auto; padding-top:7px; border-top:1px #ccc solid; margin-top:5px;}   #layer{position:relative;}  #poper{position:absolute;z-index:10;display:none;left:39px;border:solid 1px #ccc; background-color:#fff;}   #poper .heard{height:25px;line-height:25px; width:100%;text-align:right; }  #poper .heard a{color:#999;text-decoration:none;}  #poper .heard a:hover{color:red;text-decoration:underline;}  #poper .first{height:30px;line-height:30px; width:100%;text-align:center; color:#5aa608;}  #poper .first a{color:#5aa608;text-decoration:underline;}  #poper .second{height:20px;line-height:20px; width:100%;text-align:left; margin-left:10px;}  #poper .second a{color:#999; text-decoration:none;}  #poper .second a:hover{color:#5aa608; text-decoration:underline;}  </style>  <div id="login">      <div class="heard"><div class="left">Connect to Server</div><div class="right"><a href="javascript:void(0);" id="login_close" title="close">close</a></div></div>      <div class="content">          <div class="top">              <div class="left">Server name:</div>              <div class="right">                  <div id="layer">                      <input id="txtServer" type="text" />                      <div id="poper">                          <div class="heard"><a id="layer_close" href="javascript:void(0);" title="close">close</a>&nbsp;&nbsp;</div>                          <div class="first"><a id="loadServer" href="javascript:void(0);" title="点击加载SQL Server服务列表">点击加载SQL Server服务列表</a></div>                      </div>                  </div>              </div>          </div>          <div class="top"><div class="left">Authentication:</div><div class="right"><select id="selectAuthentication"><option value="windows">Windows Authentication</option><option value="sql" selected="selected">SQL Server Authentication</option></select></div></div>          <div class="top"><div class="left">Login:</div><div class="right"><input id="txtUserName" type="text" /></div></div>          <div class="top"><div class="left">Password:</div><div class="right"><input id="txtPassword" type="password" /></div></div>          <div class="bottom-btn"><input id="btnConnect" type="button" class="btn-submit" value="Connect" /><input id="btnCancel" type="button" class="button" value="Cancel" /><font id="message"></font></div>      </div>  </div>  </body>  </html>  <script type="text/javascript">      $(document).ready(function() {          $("#browser").treeview();           $("#selectAuthentication").change(function() {              if ($(this).val() == "windows") {                  $("#txtUserName,#txtPassword").css("background-color", "#eee");                  $("#txtUserName,#txtPassword").attr("disabled", "disabled");              } else {                  $("#txtUserName,#txtPassword").css("background-color", "#fff");                  $("#txtUserName,#txtPassword").removeAttr("disabled");              }          });           $("#txtServer").focus(function() { $("#poper").fadeIn("fast"); });           $("#poper").css({ "top": $("#txtServer").outerHeight() + 1, "width": $("#txtServer").outerWidth() });           $("#layer_close").click(function() {              $(this).parent().parent().fadeOut("fast");          });           $("#loadServer").click(function() {              $.ajax({                  type: "get",                  dataType: "text",                  timeout: 300000,                  url: "ashx/Handler.ashx",                  data: "flag=server",                  beforeSend: function() { $("#loadServer").fadeOut("fast"); $("#poper .first").html("<img src='images/ajax-loader.gif' title='正在加载中,请稍后&hellip;&hellip;' />正在加载中,请稍后&hellip;&hellip;") },                  success: function(data) {                      if (data == "error") {                          $("#poper .first").html("<font color=red>服务列表加载失败,请刷新重新加载</font>");                      } else if (data == "empty") {                          $("#poper .first").html("<font color=red>没有数据,请手动填写</font>");                      } else {                          $("#poper .first").remove();                          $("#poper").append(data);                          alink();                      }                  },                  error: function() { $("#poper .first").html("<font color=red>系统发生错误,请联系管理员!</font>"); }              });          });      })        $("#btnConnect").click(function() {          if ($("#selectAuthentication").val() == "sql") { //SQL Server Authentication              if ($("#txtServer").val().length < 1) {                  $("#message").css("color", "red"); $("#message").html("请输入Server name");              } else if ($("#txtUserName").val().length < 1) {                  $("#message").css("color", "red"); $("#message").html("请输入Login");              } else if ($("#txtPassword").val().length < 1) {                  $("#message").css("color", "red"); $("#message").html("请输入Password");              } else {                  $.ajax({                      type: "get",                      dataType: "text",                      timeout: 300000,                      url: "ashx/Handler.ashx",                      data: "flag=login&sqlServer=" + encodeURIComponent($("#txtServer").val()) + "&user=" + encodeURIComponent($("#txtUserName").val()) + "&password=" + encodeURIComponent($("#txtPassword").val()),                      beforeSend: function() { $("#message").css("color", "#5aa608"); $("#message").html("<img src='images/ajax-loader.gif' title='正在加载中,请稍后&hellip;&hellip;' />正在验证,请稍后&hellip;&hellip;"); },                      success: function(data) {                          if (data == "True") {                              $("#message").html("");                              hideLogin();                              $("#browser").fadeIn("fast");                          }                      },                      error: function() { $("#message").css("color", "red"); $("#message").html("登录失败"); }                  });              }           }      });       $(function() {          var screenwidth, screenheight, mytop, getPosLeft, getPosTop          screenwidth = $(window).width();          screenheight = $(window).height();          //获取滚动条距顶部的偏移          mytop = $(document).scrollTop();          //计算弹出层的left          getPosLeft = screenwidth / 2 - 200;          //计算弹出层的top          getPosTop = screenheight / 2 - 150;          //css定位弹出层          $("#login").css({ "left": getPosLeft, "top": getPosTop });          //当浏览器窗口大小改变时          $(window).resize(function() {              screenwidth = $(window).width();              screenheight = $(window).height();              mytop = $(document).scrollTop();              getPosLeft = screenwidth / 2 - 200;              getPosTop = screenheight / 2 - 150;              $("#login").css({ "left": getPosLeft, "top": getPosTop + mytop });          });          //当拉动滚动条时,弹出层跟着移动          $(window).scroll(function() {              screenwidth = $(window).width();              screenheight = $(window).height();              mytop = $(document).scrollTop();              getPosLeft = screenwidth / 2 - 200;              getPosTop = screenheight / 2 - 150;              $("#login").css({ "left": getPosLeft, "top": getPosTop + mytop });          });          //点击关闭按钮          $("#login_close").click(function() {              hideLogin();          });           $("#btnOK").click(function() {              $("#login").fadeOut("slow");              $("#browser").fadeIn("slow");              //删除变灰的层              $("#greybackground").remove();              return false;          });          $.get("ashx/Handler.ashx?flag=islogin", function(data) {              if (data == "True") {//没有登录,显示登录框                  hideLogin();              } else {                  showLogin();              }          });      });       function showLogin() {//显示登陆框          $("#login").fadeIn("slow");          //获取页面文档的高度          var docheight = $(document).height();          //追加一个层,使背景变灰          $("body").append("<div id='greybackground'></div>");          $("#greybackground").css({ "opacity": "0.5", "height": docheight });          return false;      }      function hideLogin() {          $("#login").fadeOut("slow");          //删除变灰的层          $("#greybackground").remove();          return false;      }      function alink() {//生成的a追加click事件          $("#poper .second a").each(function() {              $(this).click(function() {                  var a = $(this).html();                  $("#txtServer").val(a);              });          });      }  </script>

Handler.ashx

<%@ WebHandler Language="C#" Class="Handler" %>  using System;  using System.Web;  using System.Collections.Generic;  using System.Text;  using System.Web.SessionState;  public class Handler : IHttpHandler,IRequiresSessionState {          public void ProcessRequest (HttpContext context) {          context.Response.ContentType = "text/plain";          string tempValue = string.Empty;          if (context.Request["flag"] == null)              context.Response.Write("error");          else         {              string flag = context.Request["flag"];              switch (flag)              {                  case "server":                      tempValue = this.GetServers();                      break;                  case "islogin":                      tempValue = (context.Session["login"] != null).ToString();//判断是否登录到SQL                      break;                  case "login":                      tempValue = IsLogin(context);                      break;                  default:                      tempValue = "error";                      break;              }          }          context.Response.Write(tempValue);      }      /// <summary>      /// 加载SQL Server 服务列表      /// </summary>      /// <returns></returns>      private string GetServers()      {          IList<string> list = Common.GetServers();          if (list == null || list.Count == 0) return "empty";          StringBuilder sb = new StringBuilder();          foreach (string s in list)          {              sb.AppendFORMat("<div class=\"second\"><a href=\"javascript:void(0);\" title=\"{0}\">{0}</a></div>", s);          }          return sb.ToString();      }      /// <summary>      /// 登录SQL Server      /// </summary>      /// <param name="context"></param>      /// <returns></returns>      private string IsLogin(HttpContext context)      {          if (context.Request["user"] == null || context.Request["password"] == null)          {              context.Session["login"] = "success";              return "";          }          else         {              string server = HttpUtility.UrlDecode(context.Request["sqlServer"]);              string user = HttpUtility.UrlDecode(context.Request["user"]);              string password = HttpUtility.UrlDecode(context.Request["password"]);              string sqlConstring;              if (Common.IsLogin(server, user, password, out sqlConstring))              {                  context.Session["login"] = sqlConstring;                  return "True";              }              else             {                  return "False";               }          }      }      public bool IsReusable {          get {              return false;          }      }  }

Common.cs

using System;  using System.Collections.Generic;  using System.Linq;  using System.Web;  using System.Data.Sql;  using System.Data.SqlClient;  using System.Data;  /// <summary>  /// Summary description for Common  /// </summary>  public class Common  {      public Common()      {          //          // TODO: Add constructor logic here          //      }      /// <summary>      /// 加载SQL服务列表      /// </summary>      /// <returns></returns>      public static IList<string> GetServers()      {          IList<string> list = new List<string>();          SqlDataSourceEnumerator sse = SqlClientFactory.Instance.CreateDataSourceEnumerator() as SqlDataSourceEnumerator;          if (sse == null) return null;          DataTable dt = sse.GetDataSources();          foreach (DataRow dr in dt.Rows)          {              string server = dr["ServerName"] as string;              string instance = dr["InstanceName"] as string;              if (string.IsNullOrEmpty(instance) || instance.ToUpper() == "MSSQLSERVER")                  list.Add(server);              else                 list.Add(server + @"\" + instance);          }          return list;      }      /// <summary>      /// SQL Server Authentication      /// </summary>      /// <param name="server">SQL服务</param>      /// <param name="user">用户名</param>      /// <param name="password">密码</param>      /// <param name="sqlConstring">数据库连接字符串</param>      /// <returns></returns>      public static bool IsLogin(string server,string user,string password,out string sqlConstring)      {          sqlConstring = string.Format("Data Source={0};Initial Catalog=master;Persist Security Info=True;User ID={1};Password={2}", server, user, password);          return SQLHelper.LoginSQL(sqlConstring);      }  }

SQLHelper.cs

using System;  using System.Collections.Generic;  using System.Linq;  using System.Web;  using System.Data;  using System.Data.SqlClient;   /// <summary>  /// Summary description for SQLHelper  /// </summary>  public class SQLHelper  {      public SQLHelper()      {          //          // TODO: Add constructor logic here          //      }        /// <summary>      /// 判断是否登录SQL Server      /// </summary>      /// <param name="sqlConstring"></param>      /// <returns></returns>      public static bool LoginSQL(string sqlConstring)      {          bool isLogin = false;          using(SqlConnection conn = new SqlConnection(sqlConstring))          {               conn.Open();              if (conn.State.ToString().ToLower() == "open")                  isLogin = true;              return isLogin;          }      }  }

关于怎么进行jQuery div弹出层的ajax登录就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: 怎么进行jQuery div弹出层的ajax登录

本文链接: https://lsjlt.com/news/86043.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么进行jQuery div弹出层的ajax登录
    这篇文章给大家介绍怎么进行jQuery div弹出层的ajax登录,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。div弹出层的ajax登录(Jquery版)这次本想做一个简易数据库管理...
    99+
    2024-04-02
  • CSS中DIV弹出层问题怎么解决
    这篇文章主要讲解了“CSS中DIV弹出层问题怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CSS中DIV弹出层问题怎么解决”吧!DIV弹出层问题解决...
    99+
    2024-04-02
  • 怎么用jQuery代码实现DIV弹出效果
    本篇内容主要讲解“怎么用jQuery代码实现DIV弹出效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用jQuery代码实现DIV弹出效果”吧!jQuer...
    99+
    2024-04-02
  • 使用jQuery怎么实现一个弹出层效果
    使用jQuery怎么实现一个弹出层效果,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1 //------------------...
    99+
    2024-04-02
  • Ajax加载外部页面弹出层效果怎么实现
    这篇文章主要介绍“Ajax加载外部页面弹出层效果怎么实现”,在日常操作中,相信很多人在Ajax加载外部页面弹出层效果怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Aj...
    99+
    2024-04-02
  • AJAX怎么显示加载中并弹出图层遮挡页面
    这篇文章给大家分享的是有关AJAX怎么显示加载中并弹出图层遮挡页面的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。实现方法HTML部分:<div id="...
    99+
    2024-04-02
  • 怎么用JavaScript做弹出式可拖动登录框
    这篇文章主要介绍了怎么用JavaScript做弹出式可拖动登录框的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么用JavaScript做弹出式可拖动登录框文章都会有所收获,下...
    99+
    2024-04-02
  • 利用shiro怎么对登录信息进行保存
    这篇文章将为大家详细讲解有关利用shiro怎么对登录信息进行保存,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Shiro提供了记住我(RememberMe)的功能,比如访问如淘宝等一些网站时...
    99+
    2023-05-31
    shiro
  • 浅析node怎么进行微博第三方登录
    接入微博第三方登录可以免注册,对用户的体验更好,今天我们就用nodejs实现微博第三方登录(用其它语言也可以)。【相关教程推荐:nodejs视频教程】实现效果在线实例: http://www.lolmbbs.com/login1、点击微博登...
    99+
    2022-11-22
    node nodejs​ Node.js
  • 使用Spring Security怎么JSON进行配置并登录
    这期内容当中小编将会给大家带来有关使用Spring Security怎么JSON进行配置并登录,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。准备工作基本的spring security配置就不说了,网上一...
    99+
    2023-05-31
    spring security json
  • Node怎么运用Cookie和Session进行登录验证
    本篇内容主要讲解“Node怎么运用Cookie和Session进行登录验证”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Node怎么运用Cookie和Session进行登录验证”吧!1️⃣ 定义...
    99+
    2023-07-04
  • 怎么处理windows登录弹出不能加载本地存储文件?
    工作上碰到电脑出现重启之后输入登录用户密码进入系统,就弹出Windows不能加载本地存储配置文件,确认之后,就会安装临时桌面加载。导致原来的桌面上图标都不见了。 奇怪的是,你注销用户,用管理员administator用户...
    99+
    2023-06-11
    windows加载 存储 windows 文件
  • PHP+jQuery-ui怎么进行拖动浮动层排序并保存到数据库
    这篇文章将为大家详细讲解有关PHP+jQuery-ui怎么进行拖动浮动层排序并保存到数据库,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。PHP+jQuery-ui实现的拖动浮动层排序布局并将...
    99+
    2023-06-03
  • 华为云服务器怎么用命令行登录进去
    如果您要使用华为云服务器并想登录进去,您可以使用以下命令行登录进去: cd 华为云服务器 这个命令会弹出华为云服务器的欢迎界面,您可以输入相应的用户名和密码进行登录。请注意,使用该命令登录可能会需要您输入用户名和密码,因此在执行此操作前请确...
    99+
    2023-10-25
    华为 服务器
  • 怎么让alert弹出框的内容可以换行
    要让alert弹出框的内容换行,可以在弹出框的文本中使用换行符"\n"。以下是一个示例:```javascriptvar messa...
    99+
    2023-09-02
    alert
  • 怎么在GitLab上进行第一次登录并更改密码
    这篇文章主要讲解了“怎么在GitLab上进行第一次登录并更改密码”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么在GitLab上进行第一次登录并更改密码”吧!第一步:访问GitLab网站首...
    99+
    2023-07-05
  • 阿里云服务器怎么登录进去的
    阿里云服务器是一种用来存储和共享文件的云计算服务。登录到阿里云服务器的方法取决于您所使用的操作系统和网络连接方式,通常可以使用 Web 登录,也可以使用 Azure App 登录。以下是一些常见的登录方法: 使用 Azure App 或...
    99+
    2023-10-27
    阿里 服务器
  • 阿里云服务器进入linux救援模式怎么退出登录
    在使用阿里云服务器时,有时会遇到一些问题需要进行Linux救援模式的启动。但是,当救援模式启动后,我们常常需要重新登录到正常的用户界面。本文将介绍如何从阿里云服务器的Linux救援模式中退出登录。 简介在使用阿里云服务器的过程中,有时可能会...
    99+
    2024-01-17
    阿里 模式 服务器
  • 怎么进行tomcat虚拟目录的映射
    要将Tomcat的虚拟目录映射到特定的路径上,可以按照以下步骤进行操作: 打开Tomcat的安装目录,找到`conf`文件夹。 在...
    99+
    2023-10-28
    tomcat
  • vue怎么创建一个判断用户登录的弹窗功能
    在现代Web应用程序中,用户认证和授权是非常重要的。为此,许多应用程序需要判断用户是否登录并在未登录的情况下强制其登录。在Vue.js中,我们可以使用它的生命周期方法和路由导航守卫轻松实现这一点。本文将介绍如何使用Vue.js创建一个判断用...
    99+
    2023-05-14
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作