Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么是一个很好的JavaScript高级UI框架?_Javascript_User Interface - Fatal编程技术网

什么是一个很好的JavaScript高级UI框架?

什么是一个很好的JavaScript高级UI框架?,javascript,user-interface,Javascript,User Interface,我需要为自定义服务器系统编写一个基于Web的临时图形前端。在这种情况下,性能和可伸缩性不是问题,因为最多10个人可以同时检查系统。它也应该是PHP或Python(服务器)和JavaScript(客户端)(不能使用Flex或Silverlight来解决非常具体的非编程相关问题) 所以我知道我可以使用YUI或jQuery,但我想知道是否有更高级的东西可以说允许我在几个小时的工作时间内编写这样一个小项目,并完成它。基本上,我希望尽可能地懒惰(不管怎样,这是一次性代码),并在尽可能短的时间内完成工作 有

我需要为自定义服务器系统编写一个基于Web的临时图形前端。在这种情况下,性能和可伸缩性不是问题,因为最多10个人可以同时检查系统。它也应该是PHP或Python(服务器)和JavaScript(客户端)(不能使用Flex或Silverlight来解决非常具体的非编程相关问题)

所以我知道我可以使用YUI或jQuery,但我想知道是否有更高级的东西可以说允许我在几个小时的工作时间内编写这样一个小项目,并完成它。基本上,我希望尽可能地懒惰(不管怎样,这是一次性代码),并在尽可能短的时间内完成工作


有什么建议吗?

你可以看看-它提供了很多小部件来快速完成任务。

因为它还没有被提到:

。前两个都是商业化的,但值得花钱。

我最近一直在玩它,发现它是一个非常简单和令人愉快的框架。

我会尝试application.js-动画效果不明显,有很多控件,而且它是一个窗口管理器(有人提到Bindows..对于一个糟糕的UI来说不值得花钱)

用在这个


我觉得卡布奇诺令人困惑,我不想再学习与单个库相关的另一种语言。

YUI似乎不错,而Extjs也非常接近。 YUI和Extjs之间几乎没有什么区别,尽管YUI是免费的,有更大的社区支持,并且有雅虎这样的巨头支持。 对于卡布奇诺来说,你必须花时间学习他们的Objective-J,一旦你学会了不需要编写一行HTML、CSS和Dom操作。但是如果你对所有这些都感到满意,为什么还要花时间学习Objective-J呢? Bindows同样是一个很好的框架,非常类似于YUI和Extjs,我喜欢它的地方在于它有许多现成的主题,这使得设计自己的定制主题更具吸引力和简单。
但如果两年后,我个人觉得YUI会比这一切走得更远。

Sproutcore将是一个不错的选择

如果您不熟悉它,您可能会发现学习基础知识所需的时间对于一次性代码来说太长,但一旦掌握了基础知识,就可以很快地进行开发。

请查看

DHTMLX工具包是一套全面的支持Ajax的DHTML UI组件。专业开发的网格、treegrid、treeview、tabbar、日历、菜单、工具栏、组合框、窗口、项目浏览器、颜色选择器和文件上传器使开发人员能够构建具有高交互性和丰富用户体验的跨浏览器web应用程序。DHTMLX组件提供了最完整的功能集,并允许您将类似桌面的功能带到web上


我刚才来过。我没有用过它,但至少演示看起来很酷。

在所有的JS框架中,JQuery和YUI是我的最爱。他们完成了很多相同的任务,但方式却截然不同

对于您的请求(懒惰、简单和强大),我将投票支持JQuery。如果这是一个更加长期的应用程序,并且是一个非常冗长和代码繁重的应用程序,我会投YUI的票


我真的不认为有什么比这两个框架更好。这两种选择都是好的。

而且Dojo的UI库名绝对可观

另请参见此问题

2016年

  • 这是一些旧的

  • (有趣的方法)
  • 还有他们那套漂亮的
  • 简单用户界面工具包请参见
  • (需要Java)

  • Qooxdoo是非凡的。你可以用它做手机、网络和台式机。它抽象掉了所有的html和css。它有很好的文档和OO。您还可以在服务器端和客户端使用相同的对象


    最新加入名单的将是威莫和肯杜伊


    免责声明:我是Web Atoms JS的作者

    Web Atoms JS的构建旨在引入Flex、Silverlight和XUL的所有概念。这些技术中的每一种都在非常高级的UI控件中使用了更多的XML标记。屏幕变得复杂,当屏幕不断变化时,对其进行可视化变得痛苦

    使用Web Atoms,您将比任何其他框架编写更少的代码

    这是Web Atoms JS中所有可能的示例

    这里是文档的链接。


    您可以尝试RedUI,它还没有准备好投入生产,但它应该对您的目标有好处

    这种方法受WPF的启发,您可以使用预定义的控件来描述UI,如文本框组合框,也可以使用一些更复杂的控件,如树状视图网格视图。 在模型中,还声明了数据绑定

    库将为您呈现一个窗口

    然后将其绑定到视图模型,订阅事件,并添加处理这些事件的自定义逻辑(例如,在“window.closed”时,您可以将更新后的视图模型发送回服务器)

    你可以在网站上看到真实的例子

    您还可以在上看到演示应用程序。这会让你知道你能做什么。

    尝试使用。2017年,它将高级UI操作简化为简单的行*

    如果你想给钱:

    如果你决定把钱留给自己:

    如果目标是编写非常高级的UI代码,那么以下代码生成器程序可以在几分钟内构建应用程序的整个UI(对于想要使用的用户):


    我是不是错过了什么,事实上我不是在选择吗

    而且
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>jQuery UI Droppable - Default functionality</title>
    <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
    <link rel="stylesheet" href="/resources/demos/style.css">
    <style>
        ul.listRoles {
            width: 300px;
            height: auto;
            padding: 5px;
            margin: 5px;
            list-style-type: none;
            border-radius: 5px;
            min-height: 70px;
        }
    
            ul.listRoles li {
                padding: 5px;
                margin: 10px;
                background-color: #ffff99;
                cursor: pointer;
                border: 1px solid Black;
                border-radius: 5px;
            }
    </style>
    <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
    <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
    <script>
        $(function () {
            $("#listDenyRoles, #listAllowRoles, #listAllowMoreRoles").sortable({
                connectWith: ".listRoles"
            }).disableSelection();
        });
    
        function submitNewRoles() {
            //Generate List of new allow roles
            var outputList = $("#listAllowRoles li").map(function () { return $(this).html(); }).get().join(',');
            $("#GrantRoles").val(outputList);
            $("#formAssignRoles").submit();
        }
    </script>
    </head>
    <body>
    <div class="container body-content">
            @RenderBody()
            <hr />
            <footer>
                <p>&copy; @DateTime.Now.Year - My ASP.NET Application</p>
            </footer>
        </div>
        }
    </body>
    </html>
    
    @{
        ViewBag.Title = "Home Page";
    }
    
    <p>
        To GRANT a user a role, click and drag a role from the left Red box to the right Green box.<br />
        To DENY a user a role, click and drag a role from the right Green box to the left Red box.
    </p>
    
    @using (Html.BeginForm("AssignRoles", "UserAdmin", FormMethod.Post, new { id = "formAssignRoles" }))
    {
    
        String[] AllRoles = ViewBag.AllRoles;
        String[] AllowRoles = ViewBag.AllowRoles;
    
        if (AllRoles == null) { AllRoles = new String[] { "Test1","Test2","Test3","Test4", "Test5", "Test6", "Test7", "Test8", "Test9", "Test10", "Test11", "Test12", "Test13" }; }
        if (AllowRoles == null) { AllowRoles = new String[] { }; }
    
        @Html.ValidationSummary(true)
        <div class="jumbotron">
            <fieldset>
                <legend>Drag and Drop Roles as required;</legend>
                @Html.Hidden("Username", "Username")
                @Html.Hidden("GrantRoles", "")
    
                <table>
                    <tr>
                        <th style="text-align: center">
                            Deny Roles
                        </th>
                        <th style="text-align: center">
                            Allow Roles
                        </th>
                    </tr>
                    <tr>
                        <td style="vertical-align: top">
                            <ul id="listDenyRoles" class="listRoles" style="background-color: #cc0000;">
                                @foreach (String role in AllRoles)
                                {
                                    if (!AllowRoles.Contains(role))
                                    {
    
                                        <li>@role</li>
                                    }
                                }
                            </ul>
                        </td>
                        <td style="vertical-align: top">
    
                            <ul id="listAllowRoles" class="listRoles" style="background-color: #00cc00;">
                                @foreach (String hasRole in AllowRoles)
                                {
                                    <li>@hasRole</li>
                                }
                            </ul>
                        </td>
                        <td style="vertical-align: top">
    
                            <ul id="listAllowMoreRoles" class="listRoles" style="background-color: #000000;">
                                @foreach (String hasRole in AllowRoles)
                                {
                                    <li>@hasRole</li>
                                }
                            </ul>
                        </td>
                    </tr>
                </table>
                <p><input type="button" onClick="submitNewRoles()" value="Assign Roles" /></p>
            </fieldset>
    
    
        </div>
    }