1、实例代码:
代码如下 | 复制代码 |
<!DOCTYPE html> <html> <head> <meta charset='utf-8'/> <title>直接运行 html 代码</title> </head> <body> <textarea style='width:300px;height:200px;'id='txtCode'></textarea><br/> <input type='button'value='直接运行'id='btnRun'/> <script> document.getElementById('btnRun').onclick =function(){ varrunHtml = document.getElementById('txtCode').value; if(runHtml){ varwin = window.open('','运行窗口'); win.document.open(); win.document.write(runHtml); win.document.close(); } else{ alert('请输入!'); } } </script> </body> </html> |
2、运行效果图如下:
本文介绍了jsonp跨域请求实现示例,非常有用,不会的同学可以看看网上看了很多关于jsonp的资料,发现在本机运行后实现不了,有的是有错漏,有的是说的比较含糊,接合自己的情况,整了一个可运行的示例;
前言:
ajax请求地址:http://192.168.1.102:8080/carop/jsonp
服务端要返回的jsonp字符串:jsonpCallback({"name":"刘德华","电话":"17688888888"})
jsonp写法,写法上可以理解成一个javascript函数的执行,例如alert("hello world")会弹出hello world的窗口,再例如alert({"name":"刘德华"})会弹出[object Object]的窗口。(注意这里参数两端没加双引号,它是一个有属性的对象而不是一个字符串)
那么本示例的jsonp中,可以将jsonpCallback理解成函数名,{"name":"刘德华","电话":"17688888888"}这个对象是这个函数执行时所要传递的参数。
客户端:
代码如下 | 复制代码 |
$.ajax({ type:"get", async:false, url:"http://192.168.1.102:8080/carop/jsonp", dataType:"jsonp", jsonpCallback:"jsonpCallback", success:function(data){ alert(data.name+"\n "+data.tel); } }); |
其他的ajax方法比如getjson亦可,写法上有区别,这里仅采用一种方法。
说明:jsonpCallback:"jsonpCallback",前一个ajax参数表示要执行的函数,后面的”jsonpCallback“,这个是服务器返回jsonp的javascript函数名。(网上有相关资料这个参数写的是jsonp而不是jsonpCallback,经实际测试要写成jsonpCallback,jquery版本1.8,所测试浏览器为火狐和edge)
服务端
servlet控制器层直接返回jsonp;
代码如下 | 复制代码 |
importjava.io.IOException; importjava.io.PrintWriter; importjavax.servlet.ServletException; importjavax.servlet.annotation.WebServlet; importjavax.servlet.http.HttpServlet; importjavax.servlet.http.HttpServletRequest; importjavax.servlet.http.HttpServletResponse; @WebServlet("/jsonp") publicclassjsonpextendsHttpServlet{ @Override protectedvoiddoGet(HttpServletRequest req, HttpServletResponse resp) throwsServletException, IOException { resp.setCharacterEncoding("UTF-8"); //System.out.println("进入jsonp"); resp.setContentType("text/json;charset=utf-8"); String json="{\"name\":\"刘德华\",\"tel\":\"17688888888\"}"; String jsonp="jsonpCallback("+json+")"; PrintWriter pw=resp.getWriter(); System.out.println(jsonp); pw.print(jsonp); } @Override protectedvoiddoPost(HttpServletRequest req, HttpServletResponse resp) throwsServletException, IOException { // TODO Auto-generated method stub doGet(req, resp); } } |
本篇文章主要为大家介绍了手机网站开发场景应用的设计方法,很有参考价值,有兴趣的小伙伴就来看一看吧。
移动数据终端由于和用户形影不离,进而几乎成为用户身体的一部分,对其依赖性的深入性不言而喻,所以,移动终端在诞生时就已经携带了天然优势,这使手机网站的设计师,得以获得新的大展身手的天地。
第一、移动端设计效果难以判断
虽然移动端场景的设计应用空间非常广阔,但是终端场景设计的效果,却由于空间的阻隔,设计师无法看到现场的实际效果,在这样的状况之下,要想获得现实场景当中,用户在使用设计师设计的手机网站应用场景时所获得的真实感受以及碰到的难题和槽点,就必须依赖于手机网站场景设计的模拟机制了。
第二、以案例说明场景设计模拟的重要性
如果以使用者最常见到的订购观影服务这一系列的应用为例来介绍,我们首先可以按照研究的方便把这个应用的过程按先后顺序分成六个步骤,在线买票、到达电影院,从售票终端取票,通过自动检票机,消费过程,以及通过观影论坛发布评论。根据这些步骤,某手机软件在每一个功能段都嵌入了一些功能,如果票已经订购成功,那么手机网站页面就会出现一个人型图案,这个人型图案会在不同的阶段变换功能,比如在检票的时候可以变成验证码,而在出门要去电影院的时候可以与叫车软件相连接。
第三、根据使用场景来设计应用的思路与方法
设计师融入应用场景,是很重要的一种换位思维,不过能够体会到用户的需求只是基于场景应用开发的最前端,在这之后还要经过四个步骤的考验才能将一个应用打造得初见雏形,这四个步骤分别是场景描述,需求点挖掘,服务思路策划和效果审核。
其中尤以服务思路策划最为重要,因为对手机网站上这款应用最核心的智慧都凝聚在这个步骤里,而且即便是对于后期的代码编写等繁杂操作,所能获得的效果本质上也是受这个解决问题思路的优劣左右的。
来源易百讯网站建设http://www.yibaixun.com/news/1451.html 原文地址,欢迎分享 转载请注明出处。
本文介绍了使用Visual Studio 2017作为Linux C++开发工具的教程,非常实用,有兴趣东西可以参考一下Visual Studio 2017
微软的宇宙第一IDE Visual Studio 2017正式版出来了,地址是:https://www.visualstudio.com/vs/whatsnew/
VS2017亮点很多,包括模块化安装、启动速度加快(第一次启动加快50%以上)、github插件、启动页完善、增强代码提示功能,等等,更多参考:https://www.visualstudio.com/en-us/news/releasenotes/vs2017-relnotes。
Visual Studio 2017 Support for Linux Development
VS2017可以编辑、编译、调试linux上的c++、python、node.js程序(详细)。
甚至可以编译调试.NET程序,支持的Linux平台包括:
CentOS 7.1 and Oracle Linux 7.1
Debian 8
Fedora 23
Linux Mint 17
openSUSE 13.2
Red Hat Enterprise Linux 7.2
Ubuntu 14.04 and 16.04
博主主要是c++作为开发语言,并且绝大部分代码都有跨平台的需求。博主一般步骤如下:
在windows机器上使用visual studio开发大部分算法功能模块,并且调试优化完毕;在涉及到IO或者网络相关的部分,需要port到linux平台,痛苦的用vim编写代码,gcc编译,gdb调试。
重点关注其中Visual Studio在C++跨平台方面的亮点,即Visual C++ for Linux,有了它,就能用最先进的IDE进行跨平台的开发了,好开心!
Visual C++ for Linux
VC++ 2017支持在编写、调试Linux下的C++程序([详细(https://blogs.msdn.microsoft.com/vcblog/2016/03/30/visual-c-for-linux-development/))。
创建跨平台Linux C++程序,如图:
实际使用效果如下图,可以看到,能够在VS下面编译Linux代码,甚至包括linux特有的头文件。除了代码补全很爽之外,还有代码着色,可视化调试等各种优点。
使用步骤
1.目标linux机器上安装好编译环境与调试环境,如在ubuntu下,安装好openssh-server/g++/gdb/gdbserver等。
sudo apt-get install openssh-server g++ gdb gdbserver
2.本机安装好visual studio 2017,需要选择安装Cross Platform Linux C++环境。
3.打开Visual Studio,新建工程,选择Cross Platform/Linux/Console Application。
4.在第一次build之前会要求ssh连接到目标linux机器,填上用户名密码连接目标机器。如果需要更换目标机器地址,在Tools/Options/Cross Platform下进行管理。
5.设置好一系列选项(黑体部分),与普通的Win32程序的设置基本一致。需要注意如下2点:
vs不会自动把addtional include中的头文件复制到本地来做代码补全的提示,需要手动将linux下面的/usr/include、/usr/local/include等目录复制到vs的linux header path(如:C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\Linux\include\usr)
头文件包含目录和库文件包含目录均为linux下的绝对路径。
6.编译时vs会将代码复制到目标机器的~/projects/[project-name]目录下,二进制文件在其目录的bin目录下。如下图,Linux环境下可以看到,已经有代码了。
实际开发
在初步使用体验中,感觉这个vs for linux还不是特别成熟,有不少问题,包括:复制文件速度过慢、无法多线程编译、编译输出信息丢失(不够友好)、无法操作跳板机等。
不过该工具作为编码的辅助工具,仍然非常具有价值,结合了vs强大的的代码编辑与调试功能和linux机器的天然服务器特性。未来可期!