В то время как обещания и обратные вызовы хорошо работают во многих ситуациях, боль в задней части выражает нечто вроде:
if (!name) {
name = async1();
}
async2(name);
. В итоге вы пройдете через async1
; проверьте, не определено ли name
или нет, и соответственно вызовите обратный вызов.
async1(name, callback) {
if (name)
callback(name)
else {
doSomething(callback)
}
}
async1(name, async2)
Хотя в в порядке хорошо , это раздражает, когда у вас много подобных случаев и обработка ошибок.
Fibers
помогает в решении проблемы.
var Fiber = require('fibers')
function async1(container) {
var current = Fiber.current
var result
doSomething(function(name) {
result = name
fiber.run()
})
Fiber.yield()
return result
}
Fiber(function() {
var name
if (!name) {
name = async1()
}
async2(name)
// Make any number of async calls from here
}
Вы можете проверить проект здесь .
Вам нужно загрузить jQuery перед , когда вы загружаете какой-либо код, связанный с jQuery, такой как jQuery DataTables, см. ниже:
<script src="js/jquery.js" type="text/javascript"></script>
<script src="js/jquery.dataTables.js" type="text/javascript"></script>
Кроме того, для производственной версии рекомендуется загружать (окончание на .min.js
).
См. jQuery DataTables: Общие ошибки консоли JavaScript для получения дополнительной информации об этой и других распространенных ошибках консоли.
Вот полный набор JS и CSS, необходимый для плагина для таблицы экспорта, чтобы работать отлично.
Надеюсь, что это сэкономит ваше время
<!--Import jQuery before export.js-->
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<!--Data Table-->
<script type="text/javascript" src=" https://cdn.datatables.net/1.10.13/js/jquery.dataTables.min.js"></script>
<script type="text/javascript" src=" https://cdn.datatables.net/buttons/1.2.4/js/dataTables.buttons.min.js"></script>
<!--Export table buttons-->
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jszip/2.5.0/jszip.min.js"></script>
<script type="text/javascript" src="https://cdn.rawgit.com/bpampuch/pdfmake/0.1.24/build/pdfmake.min.js" ></script>
<script type="text/javascript" src="https://cdn.rawgit.com/bpampuch/pdfmake/0.1.24/build/vfs_fonts.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/buttons/1.2.4/js/buttons.html5.min.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/buttons/1.2.1/js/buttons.print.min.js"></script>
<!--Export table button CSS-->
<link rel="stylesheet" href="https://cdn.datatables.net/1.10.13/css/jquery.dataTables.min.css">
<link rel="stylesheet" href="https://cdn.datatables.net/buttons/1.2.4/css/buttons.dataTables.min.css">
javascript, чтобы добавить кнопки экспорта в таблицу с id = tbl
$('#tbl').DataTable({
dom: 'Bfrtip',
buttons: [
'copy', 'csv', 'excel', 'pdf', 'print'
]
});
Результат: -
Это сработало для меня. Но обязательно загрузите jquery.js перед предпочтительным файлом dataTable.js. Приветствия!
<script type="text/javascript" src="~/Scripts/jquery.js"></script>
<script type="text/javascript" src="~/Scripts/data-table/jquery.dataTables.js"></script>
<script>$(document).ready(function () {
$.noConflict();
var table = $('# your selector').DataTable();
});</script>
, если по какой-то причине загружаются две версии jQuery (что не рекомендуется), вызов $ .noConflict (true) из второй версии вернет переменные jQuery с глобальным охватом в значения для первой версии.
В некоторых случаях это может быть проблема со старой версией (или нестабильной) файлов JQuery
Решение использует $ .noConflict ();
<script src="js/jquery.js" type="text/javascript"></script>
<script src="js/jquery.dataTables.js" type="text/javascript"></script>
<script>
$.noConflict();
jQuery( document ).ready(function( $ ) {
$('#myTable').DataTable();
});
// Code that uses other library's $ can follow here.
</script>
Я получил эту ошибку, потому что обнаружил, что я дважды ссылался на jQuery.
Первый раз: на главной странице (_Layout.cshtml
) в ASP.NET MVC, а затем снова на одной текущей странице поэтому я прокомментировал это на главной странице.
Если вы используете ASP.NET MVC, этот фрагмент может помочь вам
@*@Scripts.Render("~/bundles/jquery")*@//comment this line
@Scripts.Render("~/bundles/bootstrap")
@RenderSection("scripts", required: false)
, а на текущей странице я добавил эти строки
<script src="~/scripts/jquery-1.10.2.js"></script>
<!-- #region datatables files -->
<link rel="stylesheet" type="text/css" href="//cdn.datatables.net/1.10.12/css/jquery.dataTables.min.css" />
<script src="//cdn.datatables.net/1.10.12/js/jquery.dataTables.min.js"></script>
<!-- #endregion -->
Надеюсь, это поможет вам, даже если вы не используете ASP.NET MVC
Вы используете loding jQuery.DataTables.js
перед jquery.js
, поэтому: -
Перед загрузкой вам нужно загрузить jQuery.js
jQuery.DataTables.js
Вы используете две версии jQuery.js
на той же странице, чтобы для этого : -
Попробуйте использовать более высокую версию и убедитесь, что обе ссылки имеют одну и ту же версию jQuery