本文的目的是介绍ajax–用于lilypond的Mathjax模拟的详细情况,特别关注ajax模拟数据的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面的了解ajax–用于l
本文的目的是介绍ajax – 用于lilypond的Mathjax模拟的详细情况,特别关注ajax模拟数据的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面的了解ajax – 用于lilypond的Mathjax模拟的机会,同时也不会遗漏关于$ .ajaxPrefilter()与$ .ajaxSetup()-jQuery Ajax、Ajax 和 XML: 将 Ajax 用于聊天-使用 Ajax 和 PHP 创建聊天应用程序、Ajax 技术一 ajax提交表单 jquery ajax教程 js ajax、ajax-AjaxFileUpload实现ajax上传文件的知识。
本文目录一览:- ajax – 用于lilypond的Mathjax模拟(ajax模拟数据)
- $ .ajaxPrefilter()与$ .ajaxSetup()-jQuery Ajax
- Ajax 和 XML: 将 Ajax 用于聊天-使用 Ajax 和 PHP 创建聊天应用程序
- Ajax 技术一 ajax提交表单 jquery ajax教程 js ajax
- ajax-AjaxFileUpload实现ajax上传文件
ajax – 用于lilypond的Mathjax模拟(ajax模拟数据)
此外,在我看来,打开一个关于音乐的Stack Exchange论坛是很好的.这样的事情会带来很好的功能,像http://math.stackexchange.com的LaTeX等等.
音乐教育的人们讨厌ABC notation,但显然它是理想的论坛,就像数学公司的TeX(例如通过MathJax). Lilypond在其集成(TeX,HTML)和平台支持(Windows,Linux,Mac)方面非常先进.对于生产漂亮的便条纸也很疯狂的人们也推荐(见http://lilypond.org/web/switch/advantages).
这是a nice review of note editors,所以Lilypond不仅限于TeX集成 – 它也生成不错的.PS和.SVG文件.
Vexflow是一个基于Raphael的很好的JavaScript引擎,用于编程绘制音乐符号,但它是真正的程序员.它还有一个基于Web的SaaS http://static.vexflow.com/,如0xfe blog所述.
支持ABC符号的其他JavaScript渲染库是abcjs和abcnode.在这种HTML5 js渲染方面,IMO abcjs最接近MathJax.
MusicXML实现了非ABC方法.自从2012年以来,这种XML符号已经得到了很好的支持,但基本上它非常麻烦(就像MathML和TeX一样).还有一些支持MusicXML的JS渲染器,如score-library.
是否有一个堆叠交换论坛与音乐排版?
似乎有typesetting的建议,但已经提出将所有计算机音乐符号相关问题合并到https://music.stackexchange.com/
耦合播放音乐
http://0xfe.blogspot.ch/2010/05/music-notation-with-html5-canvas.html
这是另一个有趣的任务,即将符号呈现为MIDI或HTML5音频元素,但它是不同问题的主题.
$ .ajaxPrefilter()与$ .ajaxSetup()-jQuery Ajax
在jQuery中学习Ajax时,我遇到了两个术语,即$.ajaxPrefilter()
和$.ajaxSetup()
。我所能发现的是,它们在加载或调用之前会对AJAX进行了一些更改 $.ajax()
。
有人能以最简单的形式简化和解释这些术语,并稍加比较一下两者吗?
答案1
小编典典$.ajaxSetup()
-为将来的Ajax请求设置默认值。例如,您可以在此处设置要 始终 用于每个请求的ajax URL 。
例:
$.ajaxSetup({ // Always use this URL for every request url: "http://example.com/ajax.php"});
$.ajaxPrefilter()
-在发送每个请求之前修改现有选项。例如,您可以将查询字符串组件附加到每个发出的ajax请求中。
例:
$.ajaxPrefilter( function(options) { // Always add "?debug=1" to every URL options.url += (options.url.indexOf("?") < 0 ? : "?" : "&") + "debug=1";});
Ajax 和 XML: 将 Ajax 用于聊天-使用 Ajax 和 PHP 创建聊天应用程序
了解如何使用 Asynchronous JavaScript™ + XML (Ajax) 和 PHP 在 Web 应用程序中建立聊天系统。您的客户不需要下载或安装任何专门的即时消息通讯软件,就能和您及其他客户讨论网站的内容。
web 2.0 一词出现以来,开发人员都在说社区。不论您是否认为这有点夸大其辞,但让用户或读者能够方便地实时讨论页面主题或者销售的产品,这一想法还是很吸引人的。但是怎么办呢?能否在推销产品的页面中加入聊天,而不必让客户安装任何特殊的软件包括 adobe flash player 呢?当然!实践证明,用免费的现成工具如 php、mysql、动态 html (dhtml)、ajax 和 prototype.js 库就能完全做到。
不再罗嗦了,让我们立即开始吧。
本文转自:IBM developerWorks 中国
请点击此处查看全文
Ajax 技术一 ajax提交表单 jquery ajax教程 js ajax
ajax-AjaxFileUpload实现ajax上传文件
一.参考文件
1.AjaxFileUpload github官网
二.场景
1.前端上传通过 input file标签上传文件到后端,可以用表单做,但是用ajax时不太方便,所以用这个query插件比较好。
三.举个栗子
$("#uploadButton").click(function () {
$.ajaxFileUpload({
url: uploadFileUrl,
type: ''POST'',
fileElementId: ''file'',//file input的id
dataType: ''json'',//这里我改成大写后出现了乱码情况,小写不会
cache: false,
enctype: "multipart/form-data",
traditional: true,
success: function (data) {
if (data != null) {
alert("创建成功");
}
},
});
})
四.后端的处理可结合以下博客(SpringMvc)
https://my.oschina.net/Cubicluo/blog/894776
四.附件:以下是源码(仅供参考,这里只是摘录),只是做个备份,请去官网下载。
jQuery.extend({
createUploadIframe: function(id, uri)
{
//create frame
var frameId = ''jUploadFrame'' + id;
if(window.ActiveXObject) {
var io = document.createElement(''<iframe id="'' + frameId + ''" name="'' + frameId + ''" />'');
if(typeof uri== ''boolean''){
io.src = ''javascript:false'';
}
else if(typeof uri== ''string''){
io.src = uri;
}
}
else {
var io = document.createElement(''iframe'');
io.id = frameId;
io.name = frameId;
}
io.style.position = ''absolute'';
io.style.top = ''-1000px'';
io.style.left = ''-1000px'';
document.body.appendChild(io);
return io
},
createUploadForm: function(id, fileElementId)
{
//create form
var formId = ''jUploadForm'' + id;
var fileId = ''jUploadFile'' + id;
var form = $(''<form action="" method="POST" name="'' + formId + ''" id="'' + formId + ''" enctype="multipart/form-data"></form>'');
var oldElement = $(''#'' + fileElementId);
var newElement = $(oldElement).clone();
$(oldElement).attr(''id'', fileId);
$(oldElement).before(newElement);
$(oldElement).appendTo(form);
//set attributes
$(form).css(''position'', ''absolute'');
$(form).css(''top'', ''-1200px'');
$(form).css(''left'', ''-1200px'');
$(form).appendTo(''body'');
return form;
},
addOtherRequestsToForm: function(form,data)
{
// add extra parameter
var originalElement = $(''<input type="hidden" name="" value="">'');
for (var key in data) {
name = key;
value = data[key];
var cloneElement = originalElement.clone();
cloneElement.attr({''name'':name,''value'':value});
$(cloneElement).appendTo(form);
}
return form;
},
ajaxFileUpload: function(s) {
// TODO introduce global settings, allowing the client to modify them for all requests, not only timeout
s = jQuery.extend({}, jQuery.ajaxSettings, s);
var id = new Date().getTime()
var form = jQuery.createUploadForm(id, s.fileElementId);
if ( s.data ) form = jQuery.addOtherRequestsToForm(form,s.data);
var io = jQuery.createUploadIframe(id, s.secureuri);
var frameId = ''jUploadFrame'' + id;
var formId = ''jUploadForm'' + id;
// Watch for a new set of requests
if ( s.global && ! jQuery.active++ )
{
jQuery.event.trigger( "ajaxStart" );
}
var requestDone = false;
// Create the request object
var xml = {}
if ( s.global )
jQuery.event.trigger("ajaxSend", [xml, s]);
// Wait for a response to come back
var uploadCallback = function(isTimeout)
{
var io = document.getElementById(frameId);
try
{
if(io.contentWindow)
{
xml.responseText = io.contentWindow.document.body?io.contentWindow.document.body.innerHTML:null;
xml.responseXML = io.contentWindow.document.XMLDocument?io.contentWindow.document.XMLDocument:io.contentWindow.document;
}else if(io.contentDocument)
{
xml.responseText = io.contentDocument.document.body?io.contentDocument.document.body.innerHTML:null;
xml.responseXML = io.contentDocument.document.XMLDocument?io.contentDocument.document.XMLDocument:io.contentDocument.document;
}
}catch(e)
{
jQuery.handleError(s, xml, null, e);
}
if ( xml || isTimeout == "timeout")
{
requestDone = true;
var status;
try {
status = isTimeout != "timeout" ? "success" : "error";
// Make sure that the request was successful or notmodified
if ( status != "error" )
{
// process the data (runs the xml through httpData regardless of callback)
var data = jQuery.uploadHttpData( xml, s.dataType );
// If a local callback was specified, fire it and pass it the data
if ( s.success )
s.success( data, status );
// Fire the global callback
if( s.global )
jQuery.event.trigger( "ajaxSuccess", [xml, s] );
} else
jQuery.handleError(s, xml, status);
} catch(e)
{
status = "error";
jQuery.handleError(s, xml, status, e);
}
// The request was completed
if( s.global )
jQuery.event.trigger( "ajaxComplete", [xml, s] );
// Handle the global AJAX counter
if ( s.global && ! --jQuery.active )
jQuery.event.trigger( "ajaxStop" );
// Process result
if ( s.complete )
s.complete(xml, status);
jQuery(io).unbind()
setTimeout(function()
{ try
{
$(io).remove();
$(form).remove();
} catch(e)
{
jQuery.handleError(s, xml, null, e);
}
}, 100)
xml = null
}
}
// Timeout checker
if ( s.timeout > 0 )
{
setTimeout(function(){
// Check to see if the request is still happening
if( !requestDone ) uploadCallback( "timeout" );
}, s.timeout);
}
try
{
// var io = $(''#'' + frameId);
var form = $(''#'' + formId);
$(form).attr(''action'', s.url);
$(form).attr(''method'', ''POST'');
$(form).attr(''target'', frameId);
if(form.encoding)
{
form.encoding = ''multipart/form-data'';
}
else
{
form.enctype = ''multipart/form-data'';
}
$(form).submit();
} catch(e)
{
jQuery.handleError(s, xml, null, e);
}
if(window.attachEvent){
document.getElementById(frameId).attachEvent(''onload'', uploadCallback);
}
else{
document.getElementById(frameId).addEventListener(''load'', uploadCallback, false);
}
return {abort: function () {}};
},
uploadHttpData: function( r, type ) {
var data = !type;
data = type == "xml" || data ? r.responseXML : r.responseText;
// If the type is "script", eval it in global context
if ( type == "script" )
jQuery.globalEval( data );
// Get the JavaScript object, if JSON is used.
if ( type == "json" )
{
// If you add mimetype in your response,
// you have to delete the ''<pre></pre>'' tag.
// The pre tag in Chrome has attribute, so have to use regex to remove
var data = r.responseText;
var rx = new RegExp("<pre.*?>(.*?)</pre>","i");
var am = rx.exec(data);
//this is the desired data extracted
var data = (am) ? am[1] : ""; //the only submatch or empty
eval( "data = " + data );
}
// evaluate scripts within html
if ( type == "html" )
jQuery("<div>").html(data).evalScripts();
//alert($(''param'', data).each(function(){alert($(this).attr(''value''));}));
return data;
}
})
关于ajax – 用于lilypond的Mathjax模拟和ajax模拟数据的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于$ .ajaxPrefilter()与$ .ajaxSetup()-jQuery Ajax、Ajax 和 XML: 将 Ajax 用于聊天-使用 Ajax 和 PHP 创建聊天应用程序、Ajax 技术一 ajax提交表单 jquery ajax教程 js ajax、ajax-AjaxFileUpload实现ajax上传文件等相关知识的信息别忘了在本站进行查找喔。
本文标签: