используйте все ссылки правильно, попробуйте это ... Я изменил ваш класс <nav/>
, вместо bg-faded
я использовал bg-dark navbar-dark
<script src="http://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<link href="http://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js"></script>
<script src="http://stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js"></script>
<link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/>
<nav class="navbar navbar-expand-md bg-dark navbar-dark my-auto mx-0 p-0">
<a href="/" class="navbar-brand text-center app-logo">
<div class="d-lg-none d-sm-block"><strong>mAn</strong></div>
<div class="d-none d-lg-block d-sm-none">my App name</div>
</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#collapsingNavbar3">
<span class="navbar-toggler-icon"></span>
</button>
<div class="navbar-collapse collapse col-md-10 m-0 p-0" id="collapsingNavbar3">
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link active" href="#">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">About</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Contact</a>
</li>
</ul>
<ul class="nav navbar-nav right-nav">
<li class="nav-item ">
<a class="nav-link" href="#" id="displayName">UserName</a>
</li>
<li class="nav-item ">
<a id="btnBack" class="nav-link" style="" href="/logout">logout</a>
</li>
</ul>
</div>
</nav>
Как профессиональная игра dev работающий над заголовками AAA я могу сказать Вам. Причиной номер 1 является C++, и C будет компилировать и работать на любой платформе, говорят PS3 или NDS. Следующие производители платформы только обеспечивают устойчивые библиотеки C для взаимодействия через интерфейс с аппаратными средствами. Причиной позади этого является C, и C++ свободны, и не принадлежавшие одной корпорации, и потому что они были разработаны для близко к металлическому низкоуровневому программированию. Это означает, что игра devs должна знать C/C++, который формирует обратную связь. Однако много devs в наше время делают свои наборы инструментов в C# или Java, но поэтому производительность не очень важна.
Теперь это положение могло бы казаться фанатиком большинству веб-разработчиков, но игры должны обработать все части сложных моделирований и рендеринга до 60 раз в секунду, немного веб-приложений обязаны остаться в том уровне задержки, таким образом, потребности отличаются. И та же причина немного веб-сервисов производится с C++.
Однако AI высокого уровня и геймплей (правила) заданы сценарием из-за увеличения скорости разработки и способности точно настроить игру. Также, потому что это составляет приблизительно примерно 15% ресурсов, таким образом, мы можем пустить пыль в глаза здесь и позволить разработчикам сделать свое задание. Также обратите внимание, что кодирование системы правила fexible взяло бы о тех же ресурсах так или иначе даже если сделанный в C++. О, и не все платформы позволяют код Монеты в пять центов, который был бы хорош :)
И конечно как упомянутое управление памятью при использовании даже на 1 байт большей памяти, чем обеспеченный аппаратными средствами она не замедляется как ПК. Это отказывает. Таким образом, мы любим наши явные указатели, пользовательские средства выделения и RAII.
Существует много потенциальных причин:
Для большого набора приложений это сводится к скорости и детерминизму.
Собственный код просто работает быстрее, потому что у Вас есть компилятор, который может взять, пора сделать самое лучшее задание при создании машинного языка. Единственный человек, который должен ожидать, является разработчиком. Управляемый код должен пойти от IL до машинного языка при выполнении. Получение сделанного быстро более важно, чем получение его в самой лучшей форме, потому что пользователь должен ожидать, в то время как это происходит. Лучшая скорость == лучший пользовательский опыт.
Детерминизм является ключом во многих вещах (как игры), потому что требуется знать, точно, когда дела, которые занимают время, идут произойти. Когда я делаю выделение памяти или освобождение, оно занимает время. Я хотел бы, чтобы это произошло, когда мы загрузим новый игровой уровень, и никто не заметит, не, в то время как пользователь обстреливает оставленное получение его выстрела задницы прочь его другом в окончательном соответствии смерти. Задержка там заканчивается со сквернословием и игровым контроллером с другой стороны комнаты. С собственным кодом Вы явно управляете, когда эти вещи происходят. С управляемым кодом GC решает, когда это происходит, и нет никакого способа точно знать, когда или какой длины это может быть.
В случаях Вы упоминаете, главными причинами является более легкий доступ к системе низкого уровня API, скорость и мобильность.
Кажется мне как это, хорошая сводка ответа:
Основные причины могли бы быть:
Легче сделать приложение кросс-платформенным с C++, чем с .NET (огромное преимущество в моей точке зрения, поскольку можно нацелить игру пользователям Mac также, например),