Что такое хорошая структура пользовательского интерфейса очень высокого уровня для JavaScript? - PullRequest
16 голосов
/ 17 ноября 2008

Мне нужно написать временный веб-интерфейс для пользовательской серверной системы. В этом случае производительность и масштабируемость не являются проблемой, поскольку не более 10 человек могут одновременно проверять систему. Также это должен быть PHP или Python (сервер) и JavaScript (клиент) (нельзя использовать Flex или Silverlight для очень специфических проблем, не связанных с программированием).

Так что я знаю, что могу использовать YUI или jQuery, но мне было интересно, есть ли что-то еще более высокого уровня, позволяющее мне написать такой небольшой проект за несколько часов работы и покончить с этим. По сути, я хочу быть настолько ленивым, насколько это возможно (в любом случае, это просто выкидной код), и выполнять работу как можно быстрее.

Есть предложения?

Ответы [ 22 ]

1 голос
/ 17 ноября 2008

Я бы попробовал application.js - меньше анимации, много элементов управления и это оконный менеджер (кто-то упомянул Bindows ... не стоит денег за ужасный интерфейс).

используется в этом онлайн-текстовом процессоре

Мне кажется, что капучино сбивает с толку, и я не хочу изучать еще один язык, связанный с одной библиотекой.

1 голос
/ 12 апреля 2010

Я пришел qooxdoo некоторое время назад. Я не использовал его, но, по крайней мере, демо выглядят круто.

1 голос
/ 18 февраля 2009

YUI кажется хорошим, в то время как Extjs также подходит очень близко. Существует небольшая разница между YUI и Extjs, хотя YUI бесплатен, имеет гораздо большую поддержку сообщества и поддерживается таким гигантом, как Yahoo. для капучино вам придется потратить время на изучение наследника Objective-J, однажды узнав, что вам не нужно писать ни одной строки HTML, CSS и Dom manupulation. Но если вам все это удобно, зачем тратить время на изучение Objective-J? Опять же, Bindows - это хороший фреймворк, очень похожий на YUI и Extjs. Что мне нравится в нем, так это то, что в нем много готовых тем, что делает его более привлекательным и простым для создания собственной пользовательской темы. Но, скажем, через 2 года я лично чувствую, что YUI пошел бы намного дальше, чем все это.

1 голос
/ 01 августа 2013

Отказ от ответственности: я автор Web Atoms JS

Web Atoms JS был создан, чтобы объединить все концепции Flex, Silverlight и XUL. И каждая из этих технологий использовала больше разметки XML для элементов управления пользовательского интерфейса очень высокого уровня. Экраны становятся сложными, и их визуализация становится болезненной, когда она продолжает меняться.

С помощью Web Atoms вы будете писать меньше кода, чем любой другой фреймворк.

Это пример того, что все возможно в Web Atoms JS.

Вот ссылка на документацию. http://webatomsjs.neurospeech.com/docs

enter image description here

1 голос
/ 08 августа 2012

Qooxdoo феноменален. С его помощью вы можете делать мобильные, веб и рабочие столы. Он абстрагирует все HTML и CSS. Это хорошо документировано и ОО. Вы также можете использовать те же объекты на стороне сервера и на стороне клиента.

http://qooxdoo.org/demos

1 голос
/ 27 сентября 2016

Я могу рекомендовать Controls.js с его Инструментами .

1 голос
/ 18 октября 2015

ShieldUI также является хорошей коммерческой платформой.

0 голосов
/ 09 декабря 2016

Я использовал JQuery.UI. Это не обязательно ответ на этот вопрос (тем более, что это старый пост), но я подумал, что поделюсь тем, что у меня есть, на случай, если это кому-нибудь поможет, когда я пришел в этот пост в поисках создания перетаскивания UI.

Обратите внимание, что это для MVC.

Обратите внимание , что к этому еще не добавлена ​​действительная функциональность, это отправная точка, которая создает пользовательский интерфейс, позволяющий перетаскивать и перетаскивать элементы:

Компоновка:

<!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>
}

Надеюсь, это может помочь кому-то еще в правильном направлении.

0 голосов
/ 30 июля 2009

Sproutcore будет хорошим выбором.

Если вы не знакомы с ним, вы можете обнаружить, что время, необходимое для изучения основ, слишком велико для одноразового кода, но как только вы освоите основы, его довольно быстро разработать.

0 голосов
/ 21 февраля 2013

Последними добавлениями в список будут WIJMO и KendoUI.

http://www.wijmo.com

http://www.kendoui.com

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...