GVKun编程网logo

ajax – 用于lilypond的Mathjax模拟(ajax模拟数据)

5

本文的目的是介绍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模拟数据)

ajax – 用于lilypond的Mathjax模拟(ajax模拟数据)

有没有可以渲染 Lilypond内容的图像,如mathjax?

此外,在我看来,打开一个关于音乐的Stack Exchange论坛是很好的.这样的事情会带来很好的功能,像http://math.stackexchange.com的LaTeX等等.

为什么是Lilypond,还有什么呢?

音乐教育的人们讨厌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

$ .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 创建聊天应用程序

Ajax 和 XML: 将 Ajax 用于聊天-使用 Ajax 和 PHP 创建聊天应用程序

<script>ec(2);</script>
了解如何使用 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 技术一 ajax提交表单 jquery ajax教程 js ajax

ajax-AjaxFileUpload实现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上传文件等相关知识的信息别忘了在本站进行查找喔。

本文标签: