用JavaScript如何将json数组写入.js文件中?

现有一个json数组,如何用JavaScript实现将json数组写入.js文件中。

8个回答

$.parseJSON(data)

 function funSave() {
var id = $('#testText1')[0].value;
var name = $('#testText2')[0].value;
var str = '{mydata:[' + '{id:' + id + ',name:' + name + '}' + ']}';

str = "{MyData:[{id:'" + id + "',name:'" + name + "'}]}";

//var json = eval('(' + str + ')');

var fso, tf;
try{
fso = new ActiveXObject("Scripting.FileSystemObject");
      tf = fso.CreateTextFile("F:\\BaiduYun\\MyHtml\\DB_USER.json", true);
      tf.WriteLine(str);
}catch(err){


      }finally{
      tf.Close();
      }
}

function funSearch() {
var fso, ts, s;
var ForReading = 1;
try{
fso = new ActiveXObject("Scripting.FileSystemObject");
      ts = fso.OpenTextFile("F:\\BaiduYun\\MyHtml\\DB_USER.json", ForReading);
      s = ts.ReadLine();
      var json = eval('(' + s + ')');
      alert(json.MyData[0].id);
}catch(err){


}finally{
ts.Close();
}
}

安全问题,客户端js无法操作客户端的js文件。你是要将json写回服务器端的js文件吧,是不是搞错了?百度自己使用的动态语言的IO对象如何使用

WriteLine(json)

url :‘json所在的路径’

相当于在服务器上操作文件,得用流





<br> function sendAjaxByjson(){<br> $.post(&quot;json&quot;,{},function(data){<br> var obj=data;<br> alert(typeof obj);//string<br> //var a=eval(obj);不解,不注释则会报错..<br> var strToobj=$.parseJSON(obj);<br> alert(strToobj.name);<br> alert(typeof strToobj)//obj<br> var obja={&#39;name&#39;:&#39;techbirds&#39;,&#39;age&#39;:&#39;23&#39;,&#39;sex&#39;:&#39;male&#39;};<br> alert(typeof obja);//obj<br> alert(obja[&#39;name&#39;]+&quot;:&quot;+obja.age);<br> delete obja[&#39;name&#39;];<br> });<br> }<br> function sendAjaxByarray(){<br> $.post(&quot;array&quot;,{},function(data){<br> var str=data;<br> alert(typeof str);//string<br> alert(typeof eval(str));//object<br> var obja=[1,2,3,4,5];<br> alert(typeof obja);//object</p> <p>});<br> }<br>

 <body>
 <input type="button" value="send ajax json" onclick="sendAjaxByjson();"/>
 <input type="button" value="send ajax array" onclick="sendAjaxByarray();"/>
</body>
 <script type="text/javascript">
  function sendAjaxByjson(){
   $.post("json",{},function(data){
    var obj=data;
    alert(typeof obj);//string
    //var a=eval(obj);不解,不注释则会报错..
    var strToobj=$.parseJSON(obj);
    alert(strToobj.name);
    alert(typeof strToobj)//obj
    var obja={'name':'techbirds','age':'23','sex':'male'};
    alert(typeof obja);//obj
    alert(obja['name']+":"+obja.age);
    delete obja['name'];
   });
  }
  function sendAjaxByarray(){
   $.post("array",{},function(data){
    var str=data;
    alert(typeof str);//string
    alert(typeof eval(str));//object
    var obja=[1,2,3,4,5];
    alert(typeof obja);//object

   });
  }
 </script>
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
TypeScript如何读写Json文件,主要是如何写入数据到Json文件中
在开发单机游戏的时候,想将游戏数据存到json文件中,但是一直查不到如何写入数据到json文件中,查api也没看到相关文件流操作的api,希望有所指点,谢谢!
C++如何写入JSON文件?
# ## C++中,怎么把这样一组数据写入JSON文件? ``` chart.data = [{ "date": "2012-07-27", "value": 13 }, { "date": "2012-07-28", "value": 11 }, { "date": "2012-07-29", "value": 15 }, { "date": "2012-07-30", "value": 16 }, { "date": "2012-07-31", "value": 18 }, { "date": "2012-08-01", "value": 13 }, { "date": "2012-08-02", "value": 22 }, { "date": "2012-08-03", "value": 23 }, { "date": "2012-08-04", "value": 20 }, { "date": "2012-08-05", "value": 17 }, { "date": "2012-08-06", "value": 16 }]; ```
iOS 本地.json文件的读写
创建.json文件,并写入内容,在路径下能够找到创建的文件和里面有写入的内容,但是相同路径下获取文件,读取的内容是空的。下面是代码: // ************ 创建文件 ************ / // 创建文件管理器 NSFileManager *fileManager = [NSFileManager defaultManager]; // 获取document路径,括号中属性为当前应用程序独享 NSArray *directoryPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentDirectory = [directoryPaths objectAtIndex:0]; NSLog(@"document = %@", documentDirectory); //定义记录文件全名以及路径的字符串filePath NSString *filePath = [documentDirectory stringByAppendingPathComponent:@"my_js.json"]; NSLog(@"filePath = %@", filePath); //查找文件,如果不存在,就创建一个文件 if (![fileManager fileExistsAtPath:filePath]) { [fileManager createFileAtPath:filePath contents:nil attributes:nil]; } // ************ 写入文件 ************ / NSString *temp = @"Hello world"; //创建数据缓冲 NSMutableData *writer = [[NSMutableData alloc]init]; //将字符串添加到缓冲中 [writer appendData:[temp dataUsingEncoding:NSUTF8StringEncoding]]; [writer writeToFile:filePath atomically:YES]; // ************ 读取文件 ************ / NSData *jsonData = [NSData dataWithContentsOfFile:filePath]; id jsonObject = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingAllowFragments error:nil]; NSLog(@"读取文件 = %@", jsonObject);
数组数据 与json 的转换``
我用的是hibernate +struts <% dtreeBS treebs= new dtreeBS(); List list = (List)treebs.getAllDtreelist(); List li= new ArrayList(); for(int i=0;i<list.size();i++) { Dtree tree=(Dtree)list.get(i); List temp = new ArrayList(); temp.add(tree.getId()); temp.add( tree.getParentid()); temp.add(String.valueOf(tree.getName())); temp.add(String.valueOf(tree.getHref())); li.add(temp); } JSONWriter writer = new JSONWriter(); String jonStr= writer.write(li); %> List li 是我从数据库提取的数据! 如何将数据写入以下JS中, 如 d.add(tree.getId(),tree.getParentid(),'','') 要将整个li里的数据都转成d.add( , , , ); <script type="text/javascript"> <!-- d = new dTree('d'); d.add(0,-1,'My example tree'); d.add(1,0,'Node 1','example01.html'); d.add(4,1,'Node 3.1','example01.html'); d.add(2,0,'Node 2','example01.html'); d.add(3,1,'Node 1.1','example01.html'); d.add(5,3,'Node 1.1.1','example01.html'); d.add(6,3,'Node 1.1.1.1','example01.html'); d.add(10,6,'Node 4','example01.html'); d.add(9,10,'Node 1.2','example01.html'); document.write(d); //--> </script> [b]问题补充:[/b] [size=large]sorry~~ 问题是,如何将我取到的List li 写入JS 中, 将所有d.add( 1,2 ,'a' ,'b' )改成由List li中的数据....[/size] [b]问题补充:[/b] ((id,partentid,name,href),(....));这种 可以不用JSON,任何方法都可以~ 谢谢了~
怎样用JS方法写一个用户登录注册页面,用servlet方法,直接对文件进行操作,不需要数据库?
1.,开发工具myeclipse,搭建一个javaweb项目 2.前端用Jsp 3.做一个用户注册界面 姓名 性别 年龄 4.点击提交把页面上的数据写入到一个文件里(文件格式是json)追加不是覆盖 5.可以对文件内容进行增删改查 6.求详细代码教程 7.不用连接数据库,直接写入文件里即可
关于页面加载时间的问题~ajax请求的时间和用script标签加载脚本的时间差多少呢?
在网上找了个用mootools实现的画topo图的模块 它加载网络节点数据的方式是通过在页面头部的script标签里面加入一个写入json数据的脚本<script src="data.js">...,data.js的内容是var nodedata={json数据格式,..,},在加载完data.js后,页面中生成节点图的函数再画图。 我做了一个修改,在服务器端用data.php去打包一个json数据包,执行的结果是echo原来data.js里面的json数据,页面中利用ajax的方式去读这个php返回的数据,再画图。 还没考虑这么修改是否有意义。。但在页面加载速度上后者比前者要慢。 我不明白的地方是——在头部引入的js会发起一个http请求,ajax请求php时也会发起一个http请求,两种方式总的请求数是一样多的,导致加载速度上存在时间差的原因是什么呢? 要怎么去比较这两种请求花费的时间?是否跟页面中脚本执行的顺序什么有关系呢? 啰啰嗦嗦的;P 先谢谢啦
json数据如何读取完进行修改再写回源文件
现在问题是写好了一个树形的json文件,至于显示是另外的js读取这个json文件后显示的,而我想要的是在显示的时候有一个功能,比如点击某个子节点,那么这个子节点将变成根节点,整棵树根据这个节点变成根节点后的位置重新生成,再进行显示,树的修改的算法我大概想好了,但是json不会操作,如何进行这个读取还有修改后重新写入呢?树的结构部分如下: ``` var flare_data = { "name": "flare", "children": [ { "name": "analytics", "children": [ { "name": "cluster", "children": [ {"name": "AgglomerativeCluster", "size": 3938}, {"name": "CommunityStructure", "size": 3812}, {"name": "HierarchicalCluster", "size": 6714}, {"name": "MergeEdge", "size": 743} ] }, { "name": "graph", "children": [ {"name": "BetweennessCentrality", "size": 3534}, {"name": "LinkDistance", "size": 5731}, {"name": "MaxFlowMinCut", "size": 7840}, {"name": "ShortestPaths", "size": 5914}, {"name": "SpanningTree", "size": 3416} ] ``` 这样比如某个children将变成root的时候,怎么进行这个json文件的调整,求各位大大指导一下!
vue-cli + ts 使用CDN时报错,请问各位大佬如何解决?
### 使用vue-cli新建了一个项目,启用了TypeScript 当我尝试将vue、vuex 使用CDN 导入的时候做了如下操作 + 删除了 **package.json** 中的依赖 + 在 **index.html ** 中写入cdn ![图片说明](https://img-ask.csdn.net/upload/201912/23/1577067141_320744.png) + 在 **vue.config.js** 中写入 ``` configureWebpack: (config) => { //入口文件 config.entry.app = ['babel-polyfill', './src/main.ts']; //只有打包生产环境才需要将console删除 if (process.env.NODE_ENV == 'production') { config.plugins = [...config.plugins, ...plugins]; } // CDN config.externals = { 'cdnVue': 'Vue', } }, ``` ### 报错 ``` ERROR in E:/any pros/MyFactory/my_factory/src/main.ts(1,17): 1:17 Cannot find module 'cdnVue'. ```
node express4.x session问题
app.js中 app.use(session({ secret: ‘keyboard cat’, cookie: { maxAge: 600000,secure: false}, resave: false, saveUninitialized: true,})); app.use(function(req,res,next){ log.logger.info(‘session:’+req.session.user); if(req.session.user){//判断用户是否登录 next(); }} 登录js exports.login = function(req,res){ //console.log(req.body.username,req.body.password); var userName = req.body.username; var password = req.body.password; if(userName==”” || userName==null){ var data_err = {‘error’:{'msg':’用户名不能为空’},’status’:false} res.json(data_err); } customerInfo.findOne({‘ContactNo’:userName}).exec(function(err,result){ if(!result){ var data_err = {‘error’:{'msg':’用户不存在或已锁定’},’status’:false} res.json(data_err); }else{ //console.log (‘Upwd’,result.Upwd); if(result.Upwd !=password){ var data_err = {‘error’:{'msg':’用户名或密码错误’},’status’:false} res.json(data_err); } var data_ok = {‘data’:{},'status':’ok’} //将用户信息写入session req.session[‘user’]= result; logger.info(‘user:’+req.session.user); /*req.session.save(function(){ });*/ res.json(data_ok); } }) } 为什么在app.js中的session打印出来一直是undefined?
Vertx怎么上传或下载文件到Nginx服务器
## # 请问一下Vertx怎么写文件上传下载文件,上传和下载的地址为服务器为Nginx服务器 这是Vertx的代码、程序开启时Vertx可以启动,但是不知道怎么上传文件,求补充前端代码怎么触发上传或下载 ````java package zyxhj.utils; import java.util.HashSet; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.Map; import java.util.Map.Entry; import java.util.Set; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import io.vertx.core.AbstractVerticle; import io.vertx.core.http.HttpMethod; import io.vertx.core.http.HttpServer; import io.vertx.core.http.HttpServerRequest; import io.vertx.core.http.HttpServerResponse; import io.vertx.ext.web.Router; import io.vertx.ext.web.RoutingContext; import io.vertx.ext.web.handler.BodyHandler; import zyxhj.utils.api.BaseRC; import zyxhj.utils.api.Controller; public abstract class ZeroVerticle extends AbstractVerticle { private static Logger log = LoggerFactory.getLogger(ZeroVerticle.class); private static final String PATH_ASSET = "-assets"; protected Map<String, Controller> ctrlMap = new LinkedHashMap<>(); protected abstract void init() throws Exception; protected abstract String name(); protected abstract int port(); protected void initCtrl(Map<String, Controller> map, Controller ctrl) { map.put(ctrl.getNode(), ctrl); } public void start() { log.error("verticle<{}> started", name()); try { init(); HttpServer httpServer = vertx.createHttpServer(); Set<String> allowHeaders = new HashSet<>(); allowHeaders.add("x-requested-with"); allowHeaders.add("Access-Control-Allow-Origin"); allowHeaders.add("origin"); allowHeaders.add("Content-Type"); allowHeaders.add("accept"); // REST 增删查改方法 Set<HttpMethod> allowMethods = new HashSet<>(); allowMethods.add(HttpMethod.GET); allowMethods.add(HttpMethod.POST); // 实例化一个路由器出来,用来路由不同的rest接口 Router router = Router.router(vertx); // 增加一个处理器,将请求的上下文信息,放到RoutingContext中 router.route().handler(BodyHandler.create()); router.route("/*").handler(this::handleHttpRequest); httpServer.requestHandler(router); httpServer.listen(port(), res -> { if (res.succeeded()) { System.out.println(StringUtils.join("Server is now listening! @", port())); } else { System.out.println("Fatal error: " + res.cause()); vertx.close(); // 严重错误,不应该继续运行,需要关闭vertx实例 System.exit(-1); // 自定义程序非正常退出码,这里定义255 } }); } catch (Exception e) { e.printStackTrace(); } } private void handleHttpRequest(RoutingContext context) { HttpServerRequest req = context.request(); HttpServerResponse resp = context.response(); resp.putHeader("Access-Control-Allow-Origin", "*");// 设置跨域,目前不限制。TODO,将来需要设定指定的来源 //文件上传特殊处理 if (req.uri().startsWith("/form")) { System.out.println("enter startWith"); req.setExpectMultipart(true); req.uploadHandler(upload -> { System.out.println("enter upload"); upload.exceptionHandler(cause -> { System.out.println("enter exceptionHandler"); req.response().setChunked(true).end("Upload failed"); }); upload.endHandler(v -> { System.out.println("enter endHandler"); req.response().setChunked(true).end("Successfully uploaded to " + upload.filename()); }); // FIXME - Potential security exploit! In a real // system you must check this filename // to make sure you're not saving to a place where // you don't want! // Or better still, just use Vert.x-Web which // controls the upload area. upload.streamToFileSystem(upload.filename()); }); } else { System.out.println(StringUtils.join(req.method(), " - ", req.path())); String reqPath = req.path(); String[] nodes = uri2Nodes(reqPath); if (null != nodes && nodes.length > 0) { // 可能因为nginx反向代理,在SERVER_NAME前加入多级子域名,需要过滤掉 // 去除nodes中,SERVER_NAME之前的部分 int startInd = 0; boolean flg = false; for (; startInd < nodes.length; startInd++) { if (nodes[startInd].equalsIgnoreCase(name())) { // 找到SERVER_NAME所在的index flg = true; break; } } if (flg) { // 匹配到SERVER_NAME if (startInd + 1 >= nodes.length) { // 只有SERVER_NAME节点,显示list resp.putHeader("content-type", "application/json;charset=UTF-8"); Controller.writeThings(resp, getCtrldocs()); } else if (startInd + 2 >= nodes.length) { // 只有controller节点,没有method节点,返回错误 resp.putHeader("content-type", "application/json;charset=UTF-8"); String node = nodes[startInd + 1]; Controller ctrl = ctrlMap.get(node); if (ctrl == null) { Controller.doResponseFailure(resp, BaseRC.SERVER_ERROR, StringUtils.join("missing controller ", node)); } else { Controller.writeThings(resp, ctrl.getJSCode()); } } else { String node = nodes[startInd + 1]; String method = nodes[startInd + 2]; Controller ctrl = ctrlMap.get(node); if (null != ctrl) { resp.putHeader("content-type", "application/json;charset=UTF-8"); try { ctrl.exec(method, context, req, resp); } catch (Exception e) { Controller.writeThings(resp, e.getMessage()); } } else { // 最好不设置content-type的header,否则文件处理可能出错 // 返回404错误 // 没有找到合适的ctrl,则可能是模版或静态资源文件 if (node.equalsIgnoreCase(PATH_ASSET)) { // goto template // -tmp 模版引擎处理 int ind = reqPath.indexOf(PATH_ASSET) + PATH_ASSET.length(); String temp = reqPath.substring(ind); String fileName = StringUtils.join("assets", temp); if (vertx.fileSystem().existsBlocking(fileName)) { // 处理静态文件 resp.sendFile(fileName); // 需要retrun,防止本函数写入终止符 return; } else { // 模版和静态文件都不存在 Controller.doResponseFailure(resp, BaseRC.SERVER_ERROR, StringUtils.join("missing file >", fileName)); } } else { Controller.doResponseFailure(resp, BaseRC.SERVER_ERROR, StringUtils.join("missing controller ", node)); } } } } } else { // 返回404错误 resp.putHeader("content-type", "application/json;charset=UTF-8"); Controller.doResponseFailure(resp, BaseRC.SERVER_ERROR, StringUtils.join("missing controller ", reqPath)); } } resp.end(); } /** * 斜杠 */ private static final char URI_SLASH = '/'; private static String[] uri2Nodes(String uri) { // 去前后空白 String tmp = StringUtils.trim(uri); // 去前后斜杠 if (tmp.length() > 0) { if (tmp.charAt(0) == URI_SLASH) { tmp = tmp.substring(1); } } if (tmp.length() > 0) { if (tmp.charAt(tmp.length() - 1) == URI_SLASH) { tmp = tmp.substring(0, tmp.length() - 1); } } // 根据斜杠拆分 if (tmp.length() > 0) { String[] nodes = StringUtils.split(tmp, URI_SLASH); return nodes; } else { return null; } } public Map<String, Controller> getCtrlList() { return ctrlMap; } public Controller getCtrlDetail(String name) { return ctrlMap.get(name); } private String getCtrldocs() { StringBuffer sb = new StringBuffer(); String ln = "\n"; String ln2 = "\n\n"; sb.append("\t\tSERVER <").append(name()).append(">").append(ln2); Iterator<Entry<String, Controller>> it = ctrlMap.entrySet().iterator(); while (it.hasNext()) { Entry<String, Controller> entry = it.next(); String key = entry.getKey(); Controller value = entry.getValue(); sb.append(">>>>> ").append(key).append(ln); value.getJSONDocs(sb); sb.append(ln).append( "\t------------------------------------------------------------------------------------------\t") .append(ln2); } return sb.toString(); } } ````
关于jsp链接外部js的问题···
首先是jsp的代码,jsp代码如下: <script type="text/javascript" src="${pageContext.request.contextPath}/resources/script/seckill.js"></script> <script type="text/javascript"> //使用EL表达式传入参数 $(function(){ seckill.detail.init({ seckillId : ${seckill.seckillId}, startTime : ${seckill.startTime.time},//毫秒,方便js作解析 endTime : ${seckill.endTime.time} }); }); </script> 这个jsp所链接js如下: var seckill={ //封装秒杀相关ajax的url URL:{ }, //验证手机号 validatePhone : function(phone){ if(phone && phone.length == 11 && isNaN(phone)){ return true; }else{ return false; } }, //详情页秒杀逻辑 detail:{ //详情页初始化 init : function(params){ //手机验证和登陆,计时交互 //规划交互流程 //在Cookie中查找手机号 var userPhone = $.cookie('userPhone'); var startTime = params['startTime']; var endTime = params['endTime']; var seckillId = params['seckillId']; if(!seckill.validatePhone(userPhone)){ //请先登陆 //控制输出 var userPhoneModel = $('#phoneModel');//拿到bootstrap的组件 //调用这个组件的方法,传递json参数 userPhoneModel.modal({ show : true, //显示弹出层 backdrop : 'static',//禁止位置关闭 keyboard : false //关闭键盘事件 }); $('#userPhoneBtn').click(function(){ var inputPhone = $('userPhoneKey').val(); if(seckill.validatePhone(inputPhone)){ //将用户手机写入到cookie $.cookie('userPhone',inputPhone,{expires:7,path:'/seckill'}); window.location.reload(); }else{ $('#userPhoneMessage').hide().html('<label class="label label-danger">手机填写有误</label>').show(300); } }); } } } } 然后使用浏览器调试的时候发现····访问到的js内容根本就不是上面的js····而是我写的另外一个jsp页面···这是什么鬼错误- -有没有大神解释一下··
js写入表格格式,但是表格框不显示怎么办
js中加入了表格格式,数据库再填充数据,但是发现数据库提取的数据有了,但是表格边框不显示,就是一排排的,但是没有边框怎么办? ``` var sd_todaybei = {}; function plotTable(sd){ if($("#question").length > 0){ var len = sd['故障模式'].length; ldate = sd['评审日期'][len-1]; var jsl = "<table name='tb-question' style='height:100%;width:80%;border:1;textAlign:center'><th>故障模式</th><th>具体描述</th><th>测量值</th><th>种类</th><th>缺陷扣分</th><th>缺陷责任部门</th><th>评审人员</th><th>车型</th><th>评审日期</th><tr></tr>" for(var i = 0; i<len;i++){ if ($.inArray(sd['评审日期'][i],riqi)== -1){ riqi.push(sd['评审日期'][i]); susadata[sd['评审日期'][i]]={}; var chexing = []; for(var k = 0; k<len;k++){ if ($.inArray(sd['车型'][k],chexing)==-1 && sd['评审日期'][i]==sd['评审日期'][k]){ chexing.push(sd['车型'][k]); susadata[sd['评审日期'][i]][sd['车型'][k]]={}; var VIN = []; for(var ll = 0; ll<len;ll++){ if ($.inArray(sd['VIN码'][ll],VIN) && sd['评审日期'][i]==sd['评审日期'][ll] && sd['车型'][k]==sd['车型'][ll]){ VIN.push(sd['VIN码'][ll]); susadata[sd['评审日期'][i]][sd['车型'][k]][sd['VIN码'][ll]]={"故障模式":[],"具体描述":[],"测量值":[],"种类":[],"缺陷扣分":[],"缺陷责任部门":[],"评审人员":[],"车型":[],"VIN码":[],"白车身码":[],"评审日期":[]}; for(var j = 0; j<len;j++){ if(sd['评审日期'][i]==sd['评审日期'][j] && sd['车型'][k]==sd['车型'][j] && sd['VIN码'][ll]==sd['VIN码'][j]){ susadata[sd['评审日期'][i]][sd['车型'][k]][sd['VIN码'][ll]]['故障模式'].push(sd['故障模式'][j]); susadata[sd['评审日期'][i]][sd['车型'][k]][sd['VIN码'][ll]]['具体描述'].push(sd['具体描述'][j]); } } } } } } } for(var i = 0; i<len;i++){ if(sd['评审日期'][i] == ldate){ s = "<td><p>"+ sd['故障模式'][i] +"</p></td><td><p>" +sd['具体描述'][i] +"</p></td><td><p>" +sd['测量值'][i] +"</p></td><td><p>" +sd['种类'][i] +"</p></td><td><p>" +sd['缺陷扣分'][i] +"</p></td><td><p>" +sd['缺陷责任部门'][i] +"</p></td><td><p>" +sd['评审人员'][i] +"</p></td><td><p>" +sd['车型'][i] +"</p></td><td><p>" +sd['评审日期'][i]+"</p></td><tr></tr>"; jsl += s; sd_today['故障模式'].push(sd['故障模式'][i]); } } jsl += "</table>" document.getElementById("question").innerHTML = jsl; susaflag =1; sd_todaybei = sd_today;//备份今日数据 while(susaflag == 0){ setTimeout(weit(),500);}}} ```
模态框怎么接收ajax传过来的值写入下拉框中?
使用模态框对信息进行修改 接收到要修改信息填入模态框后,要从下拉列表中选择内容修改 下拉列表中的值也是由ajax传回来的,要怎么放入模态框中的下拉列表中啊
python+plus.uploader.createUpload
js: var task=plus.uploader.createUpload(server, {method:"POST"}, function(t,status){ //上传完成 if(status==200){ //资源 var responseText = t.responseText; //转换成json var json = eval('(' + responseText + ')'); //上传文件的信息 var files = json.files; //上传成功以后的保存路径 var img_url = files.uploadkey.url; //ajax 写入数据库 var urls = 'http://tongle.dongyixueyuan.com'+img_url; switch(num){ case '0': img_element['0'].src = urls; img_element['0'].setAttribute('img',img_url); break; case '2': img_element['1'].src = urls; img_element['1'].setAttribute('img',img_url); break; case '3': img_element['2'].src = urls; img_element['2'].setAttribute('img',img_url); break; } //关闭转圈等待框 wt.close(); }else{ console.log("上传失败:"+status); var json = eval('(' + responseText + ')'); console.log(json); //关闭原生的转圈等待框 wt.close(); } }); task.addData("client",""); task.addData("uid",getUid()); for(var i=0;i<files.length;i++){ var f=files[i]; console.info(f.path+"______"+f.name); task.addFile(f.path,{key:f.name}); } task.start(); python的后台如何接收值,并进行图片保存,不熟悉python,请教
利用ajax动态的提取mysql中的数据,并且在前端页面中展示出来
代码如下: 前端html: ``` <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <!--<script type="text/javascript" src="jquery.js"></script>--> <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/echarts.min.js"></script> <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script> <body> <div id="main" style="width: 600px;height:400px;"></div> </body> </html> <script> var app = { xvalue: [], yvalue: [], z:[], }; // 发送ajax请求,从后台获取json数据 $(document).ready(function () { getData(); console.log(app.value1); console.log(app.timepoint) console.log(app.predictvalue1) }); function getData() { $.ajax({ url: '/test', data: {}, type: 'POST', async: false, dataType: 'json', success: function (data) { app.value1 = data.value1; app.predictvalue1=data.predictvalue1; value1 = app.value1; predictvalue1=app.predictvalue1; function trueData(i) { now = new Date(+now + oneDay); value = value1[i]; return { name: now.toString(), value: [ [now.getFullYear(), now.getMonth() + 1, now.getDate()].join('/'), Math.round(value) ] } } function predictData(i) { now1 = new Date(+now1 + oneDay); predictvalue = predictvalue1[i]; return { name: now1.toString(), value: [ [now1.getFullYear(), now1.getMonth() + 1, now1.getDate()].join('/'), Math.round(predictvalue) ] } } var data = []; var predictdata=[]; var now = +new Date(1997, 9, 3); var now1 = +new Date(1997, 9, 4); var oneDay = 24 * 3600 * 1000; for (var i = 0; i < value1.length; i++) { data.push(trueData(i)); } for (var i = 0; i < predictvalue1.length; i++) { predictdata.push(predictData(i)); } // 基于准备好的dom,初始化echarts实例 var myChart = echarts.init(document.getElementById('main')); option = { title: { text: '动态数据 + 时间坐标轴' }, tooltip: { trigger: 'axis', formatter: function (params) { params = params[0]; var date = new Date(params.name); return date.getDate() + '/' + (date.getMonth() + 1) + '/' + date.getFullYear() + ' : ' + params.value[1]; }, axisPointer: { animation: false } }, xAxis: { type: 'time', splitLine: { show: false } }, yAxis: { type: 'value', boundaryGap: [0, '100%'], splitLine: { show: false } }, series: [{ name: '真实数据', type: 'line', showSymbol: false, hoverAnimation: false, data: [], markLine: { itemStyle: { normal: { borderWidth: 1, lineStyle: { type: "dash", color: 'red', width: 2 }, show: true, color: '#4c5336' } }, data: [{ yAxis: 900 }] } }, { name: '预测数据', type: 'line', showSymbol: false, hoverAnimation: false, data: [], markLine: { itemStyle: { normal: { borderWidth: 1, lineStyle: { type: "dash", color: 'blue', width: 2 }, show: true, color: '#4c5336' } }, data: [{ yAxis: 900 }] } }] }; // 使用刚指定的配置项和数据显示图表。 myChart.setOption(option); setInterval(function () { for (var i = 0; i < 1; i++) { data.shift(); data.push(trueData(i)); } for (var i = 0; i < 1; i++) { predictdata.shift(); predictdata.push(predictData(i)); } myChart.setOption({ series: [{ data: data }, { data: predictdata }] }); }, 1000); } }) } </script> </body> </html> ``` 后端py,用的是flask框架: ``` import MySQLdb from flask import Flask, render_template, url_for import pymysql import pandas as pd import numpy as np from pandas import read_csv import matplotlib.pyplot as plt from sklearn.preprocessing import MinMaxScaler from sklearn.metrics import mean_squared_error from keras.models import Sequential from keras.layers import LSTM, Dense, Activation,Dropout import json import operator from functools import reduce import math import tensorflow as tf from keras import initializers import time # 生成Flask实例 app = Flask(__name__) @app.route("/") def hello(): return render_template('new_file.html') # /test路由 接收前端的Ajax请求 @app.route('/test', methods=['POST']) def my_echart(): # 连接数据库 conn = MySQLdb.connect(host='127.0.0.1', port=3306, user='root', passwd='123456', db='test', charset='utf8') cur = conn.cursor() sql = 'SELECT timepoint,value1 from timeseries' cur.execute(sql) u = cur.fetchall() timepoint = [] value1 = [] for data in u: value1.append(data[1]) timepoint.append(data[0]) print(value1) # 转换成json格式 jsonData = {} jsonData['value1'] = value1 jsonData['timepoint']=timepoint # json.dumps()用于将dict类型的数据转换成str,因为如果直接将dict类型的数据写入json会报错,因此将数据写入时需要用到此函数 j = json.dumps(jsonData) cur.close() conn.close() # 在浏览器上渲染my_template.html模板(为了查看输出数据) return (j) if __name__ == '__main__': app.run(debug=True,port='5000') ``` 返回的数据是从mysql中读取的,现在我想用ajax的方法定时请求数据库的下一个数据到达前台,并且刷新页面显示出来,应该怎么修改代码? 数据库如下: ![图片说明](https://img-ask.csdn.net/upload/201905/24/1558685991_221903.jpg)
[新手]关于socket.io接收tcp服务器数据后转发给客户端的问题【一句话就能解决?】
如标题,接收到了tcp服务器的数据后,想转发给客户端。但是socket.io文档似乎没有这种方法。直接上代码。 服务器部分: **var express=require('express'); var app=express(); var fs =require('fs'); var net=require('net'); var http=require('http').createServer(app); var io=require('socket.io').listen(http); //nodeServer需要的变量 var nodeServer = new net.Socket(); var ExBuffer = require('./ExBuffer'); var len = 4027; var offset=4; var exBuffer = new ExBuffer().uint32Head().littleEndian(); var sbuf = new Buffer(4); //存储客户端的连接实例 var aSocket={}; app.use(express.static('public')); app.get('/',function(req,res){ res.sendfile(__dirname+'/index.html'); }); //连接到C服务器 nodeServer.connect(3102, '127.0.0.1', function() { console.log('CONNECTED TO: 127.0.0.1:3102' ); // 建立连接后立即向服务器发送数据,服务器将收到这些数据 nodeServer.write('your socket has connected'); }); var server = http.listen(8888, '127.0.0.1',function () { var host = server.address().address var port = server.address().port console.log("welcome to http://%s:%s", host, port) }); // 同客户端建立连接 io.sockets.on('connection', function (socketIO) { aSocket=socketIO; // 从客户端接收数据,然后发送至Tomcat socketIO.emit("test","your websocket has connected"); socketIO.on('fromWebClient', function (webClientData) { }); //客户端断开连接 socketIO.on('disconnect', function () { console.log('DISCONNECTED FROM CLIENT'); }); }); // 从C服务器接收数据 nodeServer.on('data', function (data) { if(data.readUInt8(0)==170){ sbuf.writeUInt32LE(len,0);//写入包长 exBuffer.put(sbuf); exBuffer.put(data); } else{ exBuffer.put(data); } console.log('nodeServer'+data.length); }); //当nodeServer收到完整的数据包时 exBuffer.on('data', function(buffer) { console.log('>> nodeServer receive data.length:'+buffer.length); //console.log(buffer); //console.log(buffer.readInt32LE(826)); var useData=byteArrayUntil.getUseJson(buffer,offset); console.log(aSocket); aSocket.emit['pushToWebClient',useData.hz]; }); // 为nodeServer添加“data”事件处理函数 // data是服务器发回的数据 // 为客户端添加“close”事件处理函数 nodeServer.on('close', function() { console.log('Connection closed'); }); //构造一个遍历函数,分别返回array或者json var byteArrayUntil=new function(){ this.getUseData=function(data,offset){ var arr=[]; for(var i=0;i<=799;i++){ arr.push(data.readInt32LE(826+i*offset)); } return arr; } this.getUseJson=function(data,offset){ var arr=[]; for(var i=0;i<=500;i++){ arr.push(data.readInt32LE(826+i*offset)); } return {'hz':arr}; } }();** 客户端部分:(很多无用的就贴关键的了,其实这个可以暂时无视) <script> var socket = io.connect(); socket.on("test", function (data) { console.log(data); }); socket.on('pushToWebClient', function (data) { console.log(data); }); 现在问题就是服务器的这一部分: exBuffer.on('data', function(buffer) { console.log('>> nodeServer receive data.length:'+buffer.length); //console.log(buffer); //console.log(buffer.readInt32LE(826)); var useData=byteArrayUntil.getUseJson(buffer,offset); console.log(aSocket); aSocket.emit['pushToWebClient',useData.hz]; }); 我把数据接收到了,最后一句转发给客户端不会。ps:不用管对应id问题,我只需要简单实现转发数据即可。 参考过这个文档(如果知道上面怎么处理可以不用继续看了): var http = require('http'), 2 net = require('net'), 3 app = http.createServer().listen('8181'), 4 io = require('socket.io').listen(app), 5 nodeServer = new net.Socket(); 6 // 连接到Tomcat 7 nodeServer.connect(8007, '127.0.0.1', function() { 8 console.log('CONNECTED'); 9 }); 10 // 存储客户端的WebSocket连接实例 11 var aSocket = {}; 12 // 同客户端建立连接 13 io.sockets.on('connection', function (socketIO) { 14 // 从客户端接收数据,然后发送至Tomcat 15 socketIO.on('fromWebClient', function (webClientData) { 16 // 存储至映射表 17 aSocket[socketIO.id] = socketIO; 18 // 发送至Tomcat的数据中添加socket_id 19 webClientData['sid'] = socketIO.id; 20 // 发送String类型的数据至Tomcat 21 nodeServer.write(JSON.stringify(webClientData)); 22 }); 23 // 客户端断开连接 24 socketIO.on('disconnect', function () { 25 console.log('DISCONNECTED FROM CLIENT'); 26 }); 27 }); 28 29 // 从Tomcat接收数据 30 nodeServer.on('data', function (data) { 31 var jsonData = JSON.parse(data.toString()); 32 // 分发数据至客户端 33 for (var i in jsonData.list) { 34 aSocket[jsonData.list[i]['sid']].emit('pushToWebClient', jsonData.list[i].data); 35 } 36 }); 有这么一句 aSocket[jsonData.list[i]['sid']].emit('pushToWebClient', jsonData.list[i].data); 虽然它实现的是通过id来实现建立一一对应连接,但是它还是独立出来使用了(查了一些资料都是在一起用的), 到底该怎么实现呢?ps:不用管对应id问题,我只需要简单实现转发数据即可。 求大神帮助。
微信JSSDK config显示OK,checkJsApi显示OK,然后就没有任何反应了,求指导
这是我的测试地址:http://ecapex.top/wx/sample/php/sample.php 以下是我的前端代码: ``` <script> wx.config({ debug: true, appId: '<?php echo $signPackage["appId"];?>', timestamp: <?php echo $signPackage["timestamp"];?>, nonceStr: '<?php echo $signPackage["nonceStr"];?>', signature: '<?php echo $signPackage["signature"];?>', jsApiList: [ // 所有要调用的 API 都要加到这个列表中 'updateAppMessageShareData', 'updateTimelineShareData', 'onMenuShareAppMessage', 'onMenuShareTimeline' ] }); //将分享的数组组成json数组 window.share_config = { "share": { "imgUrl": "http://ecapex.top/upload/partertalents/min/20180629202242.jpg",//分享图,默认当相对路径处理,所以使用绝对路径的的话,“http://”协议前缀必须在。 "desc" : "你真是太棒了",//摘要,如果分享到朋友圈的话,不显示摘要。 "title" : '你真是非常的棒',//分享卡片标题 "link": 'http://ecapex.top',//分享出去后的链接,这里可以将链接设置为另一个页面。 "success":function(){//分享成功后的回调函数 }, 'cancel': function () { // 用户取消分享后执行的回调函数 } } }; wx.ready(function () { // 在这里调用 API //判断当前客户端版本是否支持指定JS接口 wx.checkJsApi({ jsApiList: [ // 所有要调用的 API 都要加到这个列表中 'updateAppMessageShareData', 'updateTimelineShareData', 'onMenuShareAppMessage', 'onMenuShareTimeline' ], // 需要检测的JS接口列表,所有JS接口列表见附录2, success: function(res) { console.log(res) // 以键值对的形式返回,可用的api值true,不可用为false // 如:{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"} } }); }); function AppMessage() { wx.updateAppMessageShareData(share_config.share); } function Timeline() { wx.updateTimelineShareData(share_config.share); } function Messages() { wx.onMenuShareAppMessage(share_config.share); } function timelines() { wx.onMenuShareTimeline(share_config.share) } </script> <button onclick="AppMessage()">自定义分享给朋友</button><br> <button onclick="Timeline()">自定义分享到朋友圈</button><br> <button onclick="Messages()">分享给朋友</button> <button onclick="timelines()">分享到朋友圈</button> ``` 后端代码: ``` class JSSDK { private $appId; private $appSecret; public function __construct($appId, $appSecret) { $this->appId = $appId; $this->appSecret = $appSecret; } public function getSignPackage() { $jsapiTicket = $this->getJsApiTicket(); // 注意 URL 一定要动态获取,不能 hardcode. $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://"; $url = "$protocol$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; $timestamp = time(); $nonceStr = $this->createNonceStr(); // 这里参数的顺序要按照 key 值 ASCII 码升序排序 $string = "jsapi_ticket=$jsapiTicket&noncestr=$nonceStr&timestamp=$timestamp&url=$url"; $signature = sha1($string); $signPackage = array( "appId" => $this->appId, "nonceStr" => $nonceStr,//随机字符串 "timestamp" => $timestamp,//时间戳 "url" => $url,//当前网页的URL "signature" => $signature,//签名 "rawString" => $string ); return $signPackage; } //设置签名的随机串并按ASCII 码从小到大排序 private function createNonceStr($length = 16) { $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; $str = ""; for ($i = 0; $i < $length; $i++) { $str .= substr($chars, mt_rand(0, strlen($chars) - 1), 1); } return $str; } //获取ticket private function getJsApiTicket() { // jsapi_ticket 应该全局存储与更新,以下代码以写入到文件中做示例 $data = json_decode($this->get_php_file("jsapi_ticket.php")); if ($data->expire_time < time()) { $accessToken = $this->getAccessToken(); $url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi&access_token=$accessToken"; $res = json_decode($this->httpGet($url)); $ticket = $res->ticket; if ($ticket) { $data->expire_time = time() + 7000; $data->jsapi_ticket = $ticket; $this->set_php_file("jsapi_ticket.php", json_encode($data)); } } else { $ticket = $data->jsapi_ticket; } return $ticket; } //获取accesstoken private function getAccessToken() { // access_token 应该全局存储与更新,以下代码以写入到文件中做示例 $data = json_decode($this->get_php_file("access_token.php")); if ($data->expire_time < time()) { $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$this->appId&secret=$this->appSecret"; $res = json_decode($this->httpGet($url)); $access_token = $res->access_token; if ($access_token) { $data->expire_time = time() + 7000; $data->access_token = $access_token; $this->set_php_file("access_token.php", json_encode($data)); } } else { $access_token = $data->access_token; } return $access_token; } private function httpGet($url,$type='get',$res='json',$arr='') { $ch = curl_init(); if (class_exists('\CURLFile')) { curl_setopt($ch, CURLOPT_SAFE_UPLOAD, true); } else { if (defined('CURLOPT_SAFE_UPLOAD')) { curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false); } } curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); if($type=='post'){ curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $arr); } curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $output = curl_exec($ch); if($res=='json'){ if( curl_errno($ch) ){ //请求失败 return curl_error($ch); curl_close($ch); }else{ //请求成功 curl_close($ch); return $output; } } } //获取对应文件内容(accesstoken、ticket) private function get_php_file($filename) { return trim(substr(file_get_contents($filename), 15)); } //设置对应文件内容(accesstoken、ticket) private function set_php_file($filename, $content) { $fp = fopen($filename, "w"); fwrite($fp, "<?php exit();?>" . $content); fclose($fp); } } ``` 有没有大佬告诉下,到底是怎么回事啊?我的接口权限、js安全域名都是OK的,方便的话可以加我QQ指点下我825114245
使用jquery+AJAX实现3个字段的查询,回传显示,写入数据库,刷新局部网页table
事情是这样的,我是在一个工厂里面上班,想做一个车间内用的小型网站,因为不想在车间的服务器上建立数据表,怕我这个外行调试的时候,会影响到其他很重要的数据表,所以就自己下载了一个USBWEB套件(apache+mysql+php),我把这个装到车间其中一台电脑上,当我自己的小服务器, 我想用PHP做个网页,功能是有一个textbox,当这个的输入值达到11位的时候,自动查询公司的主服务器(mssql 2014版本)上的一个数据表,这个数据表上有一个字段就是我输入的这个11位数,另外有3个字段就是我需要的数值,我想把这3个查询到字段值显示在同一个网页上,用textbox或者lable都行,然后,再将这4个数值一起存入我这台电脑的MYSQL服务器内的数据表中,然后网页中间有个显示该mysql数据表内容的table,可以自动刷新一下,谢谢 总体就是 当输入数值(只有英文和数字)达到11位时, 自动按顺序执行, 查询MSSQL, 回传显示, 写入MYSQL, 刷新table, 清空输入框, ---------------------------------- 这个网页不需要页面布局等,我已经布局了,目前已知的是,听说jquery+ajax可以实现这个功能但楼猪是学化学的,实在很难理解,所以来悬赏求教,谢谢,希望有人帮俺 目前某位热心大佬已经给了我一个demo,可以实现输入响应的回传显示,但是我还是如何把输入值带入查询语句,写到那个结果集里面,也不知道怎么才能同时显示3个字段值。。。。谢谢 我这个好多要求,知道部分功能的人,也告诉我下好吗,谢谢,我同样会C币感谢的额,~~~~~ 以下是热心大佬提供的DEMO ------------------------------------------ 主网页 ``` <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <script src="//code.jquery.com/jquery-1.11.0.min.js"></script> <title> js test </title> </head> <body> <script type="text/javascript"> function check(c){ $(function() { var id = c.value; if(id.length==6){ $.post('server.php', {'id':id}, function(ret) { $('#result').html(ret); },'json'); } }); } </script> <p>id:<input type="text" id="id" value="" onPropertyChange="check(this)" oninput="check(this)"></p> <p id="result"></p> </body> </html> ``` ------------------------------------------ PHP网页 ``` <?php $id = isset($_POST['id'])? $_POST['id'] : ''; $data = array( 111111 => '内容1', 222222 => '内容2', 333333 => '内容3' ); $ret = isset($data[$id])? $data[$id] : ''; header('content-type:application/json'); echo json_encode($ret); ?> ``` -------------------------------------------------------------- 是不是那那些插入到这个里面呢? $data = array( 插到这里吗? ); ------------------------------------------ 查询的服务器是MSSQL(2014版本) $serverName = "192.168.12.3"; $connInfo = array("Database"=>"ERP2", "UID"=>"fiber", "PWD"=>"fiber"); $conn = sqlsrv_connect($serverName, $connInfo); 表结构 ------------------------------------------ ms1 ----------------ms2 ----ms3----ms4 ------------------------------------------ ABC12345CB0 ----aa ---- aaa ----aaaa ABC12345CB1 ----bb ----bbb----bbbb ABC12345CB2 ---- cc ---- ccc----cccc ------------------------------------------ -----------------分-割-线-------------------------- 需要写入的服务器是MYSQL(好像是5) 192.168.12.6 Database = ceshi 账号 root 密码 a ------------------------------------------ my1------------ my2----my3---- my4 ------------------------------------------ ABC12345CB0 ----aa ----aaa ----aaaa ABC12345CB1 ----bb----bbb----bbbb ABC12345CB2 ---- cc---- ccc ---- cccc ------------------------------------------ 假设我输入类似这样的 ABC12345CB0 11位数字,需要查询这这数值的另外三个字段ms2 ms3 ms4 各自对应的数值,并回传显示到输入的网页上,不知该如何填写那个SERVER.php语句,谢谢~~~
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私...
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小人工智障。 思路可以运用在不同地方,主要介绍的是思路。
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
阿里面试官问我:如何设计秒杀系统?我的回答让他比起大拇指
你知道的越多,你不知道的越多 点赞再看,养成习惯 GitHub上已经开源 https://github.com/JavaFamily 有一线大厂面试点脑图和个人联系方式,欢迎Star和指教 前言 Redis在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在Redis的使用和原理方面对小伙伴们进行360°的刁难。 作为一个在互联网公司面一次拿一次Offer的面霸,打败了...
C语言魔塔游戏
很早就很想写这个,今天终于写完了。 游戏截图: 编译环境: VS2017 游戏需要一些图片,如果有想要的或者对游戏有什么看法的可以加我的QQ 2985486630 讨论,如果暂时没有回应,可以在博客下方留言,到时候我会看到。 下面我来介绍一下游戏的主要功能和实现方式 首先是玩家的定义,使用结构体,这个名字是可以自己改变的 struct gamerole { char n...
面试官问我:什么是消息队列?什么场景需要他?用了会出现什么问题?
你知道的越多,你不知道的越多 点赞再看,养成习惯 GitHub上已经开源 https://github.com/JavaFamily 有一线大厂面试点脑图、个人联系方式和人才交流群,欢迎Star和完善 前言 消息队列在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在消息队列的使用和原理方面对小伙伴们进行360°的刁难。 作为一个在互联网公司面一次拿一次Offer的面霸...
Android性能优化(4):UI渲染机制以及优化
文章目录1. 渲染机制分析1.1 渲染机制1.2 卡顿现象1.3 内存抖动2. 渲染优化方式2.1 过度绘制优化2.1.1 Show GPU overdraw2.1.2 Profile GPU Rendering2.2 卡顿优化2.2.1 SysTrace2.2.2 TraceView 在从Android 6.0源码的角度剖析View的绘制原理一文中,我们了解到View的绘制流程有三个步骤,即m...
微服务中的Kafka与Micronaut
今天,我们将通过Apache Kafka主题构建一些彼此异步通信的微服务。我们使用Micronaut框架,它为与Kafka集成提供专门的库。让我们简要介绍一下示例系统的体系结构。我们有四个微型服务:订单服务,行程服务,司机服务和乘客服务。这些应用程序的实现非常简单。它们都有内存存储,并连接到同一个Kafka实例。 我们系统的主要目标是为客户安排行程。订单服务应用程序还充当网关。它接收来自客户的请求...
致 Python 初学者们!
作者| 许向武 责编 | 屠敏 出品 | CSDN 博客 前言 在 Python 进阶的过程中,相信很多同学应该大致上学习了很多 Python 的基础知识,也正在努力成长。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 Python 这门编程语言,从2009年开始单一使用 Python 应对所有的开发工作,直至今...
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观...
程序员一般通过什么途径接私活?
二哥,你好,我想知道一般程序猿都如何接私活,我也想接,能告诉我一些方法吗? 上面是一个读者“烦不烦”问我的一个问题。其实不止是“烦不烦”,还有很多读者问过我类似这样的问题。 我接的私活不算多,挣到的钱也没有多少,加起来不到 20W。说实话,这个数目说出来我是有点心虚的,毕竟太少了,大家轻喷。但我想,恰好配得上“一般程序员”这个称号啊。毕竟苍蝇再小也是肉,我也算是有经验的人了。 唾弃接私活、做外...
字节跳动面试官这样问消息队列:分布式事务、重复消费、顺序消费,我整理了一下
你知道的越多,你不知道的越多 点赞再看,养成习惯 GitHub上已经开源 https://github.com/JavaFamily 有一线大厂面试点脑图、个人联系方式和人才交流群,欢迎Star和完善 前言 消息队列在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在消息队列的使用和原理方面对小伙伴们进行360°的刁难。 作为一个在互联网公司面一次拿一次Offer的面霸...
Python爬虫爬取淘宝,京东商品信息
小编是一个理科生,不善长说一些废话。简单介绍下原理然后直接上代码。 使用的工具(Python+pycharm2019.3+selenium+xpath+chromedriver)其中要使用pycharm也可以私聊我selenium是一个框架可以通过pip下载 pip installselenium -ihttps://pypi.tuna.tsinghua.edu.cn/simple/ ...
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
Java工作4年来应聘要16K最后没要,细节如下。。。
前奏: 今天2B哥和大家分享一位前几天面试的一位应聘者,工作4年26岁,统招本科。 以下就是他的简历和面试情况。 基本情况: 专业技能: 1、&nbsp;熟悉Sping了解SpringMVC、SpringBoot、Mybatis等框架、了解SpringCloud微服务 2、&nbsp;熟悉常用项目管理工具:SVN、GIT、MAVEN、Jenkins 3、&nbsp;熟悉Nginx、tomca...
SpringBoot2.x系列教程(三十六)SpringBoot之Tomcat配置
Spring Boot默认内嵌的Tomcat为Servlet容器,关于Tomcat的所有属性都在ServerProperties配置类中。同时,也可以实现一些接口来自定义内嵌Servlet容器和内嵌Tomcat等的配置。 关于此配置,网络上有大量的资料,但都是基于SpringBoot1.5.x版本,并不适合当前最新版本。本文将带大家了解一下最新版本的使用。 ServerProperties的部分源...
Python绘图,圣诞树,花,爱心 | Turtle篇
每周每日,分享Python实战代码,入门资料,进阶资料,基础语法,爬虫,数据分析,web网站,机器学习,深度学习等等。 公众号回复【进群】沟通交流吧,QQ扫码进群学习吧 微信群 QQ群 1.画圣诞树 import turtle screen = turtle.Screen() screen.setup(800,600) circle = turtle.Turtle()...
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东...
破14亿,Python分析我国存在哪些人口危机!
一、背景 二、爬取数据 三、数据分析 1、总人口 2、男女人口比例 3、人口城镇化 4、人口增长率 5、人口老化(抚养比) 6、各省人口 7、世界人口 四、遇到的问题 遇到的问题 1、数据分页,需要获取从1949-2018年数据,观察到有近20年参数:LAST20,由此推测获取近70年的参数可设置为:LAST70 2、2019年数据没有放上去,可以手动添加上去 3、将数据进行 行列转换 4、列名...
听说想当黑客的都玩过这个Monyer游戏(1~14攻略)
第零关 进入传送门开始第0关(游戏链接) 请点击链接进入第1关: 连接在左边→ ←连接在右边 看不到啊。。。。(只能看到一堆大佬做完的留名,也能看到菜鸡的我,在后面~~) 直接fn+f12吧 &lt;span&gt;连接在左边→&lt;/span&gt; &lt;a href="first.php"&gt;&lt;/a&gt; &lt;span&gt;←连接在右边&lt;/span&gt; o...
在家远程办公效率低?那你一定要收好这个「在家办公」神器!
相信大家都已经收到国务院延长春节假期的消息,接下来,在家远程办公可能将会持续一段时间。 但是问题来了。远程办公不是人在电脑前就当坐班了,相反,对于沟通效率,文件协作,以及信息安全都有着极高的要求。有着非常多的挑战,比如: 1在异地互相不见面的会议上,如何提高沟通效率? 2文件之间的来往反馈如何做到及时性?如何保证信息安全? 3如何规划安排每天工作,以及如何进行成果验收? ...... ...
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!...
这个世界上人真的分三六九等,你信吗?
偶然间,在知乎上看到一个问题 一时间,勾起了我深深的回忆。 以前在厂里打过两次工,做过家教,干过辅导班,做过中介。零下几度的晚上,贴过广告,满脸、满手地长冻疮。 再回首那段岁月,虽然苦,但让我学会了坚持和忍耐。让我明白了,在这个世界上,无论环境多么的恶劣,只要心存希望,星星之火,亦可燎原。 下文是原回答,希望能对你能有所启发。 如果我说,这个世界上人真的分三六九等,...
2020年全新Java学习路线图,含配套视频,学完即为中级Java程序员!!
新的一年来临,突如其来的疫情打破了平静的生活! 在家的你是否很无聊,如果无聊就来学习吧! 世上只有一种投资只赚不赔,那就是学习!!! 传智播客于2020年升级了Java学习线路图,硬核升级,免费放送! 学完你就是中级程序员,能更快一步找到工作! 一、Java基础 JavaSE基础是Java中级程序员的起点,是帮助你从小白到懂得编程的必经之路。 在Java基础板块中有6个子模块的学...
B 站上有哪些很好的学习资源?
哇说起B站,在小九眼里就是宝藏般的存在,放年假宅在家时一天刷6、7个小时不在话下,更别提今年的跨年晚会,我简直是跪着看完的!! 最早大家聚在在B站是为了追番,再后来我在上面刷欧美新歌和漂亮小姐姐的舞蹈视频,最近两年我和周围的朋友们已经把B站当作学习教室了,而且学习成本还免费,真是个励志的好平台ヽ(.◕ฺˇд ˇ◕ฺ;)ノ 下面我们就来盘点一下B站上优质的学习资源: 综合类 Oeasy: 综合...
爬取薅羊毛网站百度云资源
这是疫情期间无聊做的爬虫, 去获取暂时用不上的教程 import threading import time import pandas as pd import requests import re from threading import Thread, Lock # import urllib.request as request # req=urllib.request.Requ...
如何优雅地打印一个Java对象?
你好呀,我是沉默王二,一个和黄家驹一样身高,和刘德华一样颜值的程序员。虽然已经写了十多年的 Java 代码,但仍然觉得自己是个菜鸟(请允许我惭愧一下)。 在一个月黑风高的夜晚,我思前想后,觉得再也不能这么蹉跎下去了。于是痛下决心,准备通过输出的方式倒逼输入,以此来修炼自己的内功,从而进阶成为一名真正意义上的大神。与此同时,希望这些文章能够帮助到更多的读者,让大家在学习的路上不再寂寞、空虚和冷。 ...
雷火神山直播超两亿,Web播放器事件监听是怎么实现的?
Web播放器解决了在手机浏览器和PC浏览器上播放音视频数据的问题,让视音频内容可以不依赖用户安装App,就能进行播放以及在社交平台进行传播。在视频业务大数据平台中,播放数据的统计分析非常重要,所以Web播放器在使用过程中,需要对其内部的数据进行收集并上报至服务端,此时,就需要对发生在其内部的一些播放行为进行事件监听。 那么Web播放器事件监听是怎么实现的呢? 01 监听事件明细表 名...
3万字总结,Mysql优化之精髓
本文知识点较多,篇幅较长,请耐心学习 MySQL已经成为时下关系型数据库产品的中坚力量,备受互联网大厂的青睐,出门面试想进BAT,想拿高工资,不会点MySQL优化知识,拿offer的成功率会大大下降。 为什么要优化 系统的吞吐量瓶颈往往出现在数据库的访问速度上 随着应用程序的运行,数据库的中的数据会越来越多,处理时间会相应变慢 数据是存放在磁盘上的,读写速度无法和内存相比 如何优化 设计...
HTML5适合的情人节礼物有纪念日期功能
前言 利用HTML5,css,js实现爱心树 以及 纪念日期的功能 网页有播放音乐功能 以及打字倾诉感情的画面,非常适合情人节送给女朋友 具体的HTML代码 具体只要修改代码里面的男某某和女某某 文字段也可自行修改,还有代码下半部分的JS代码需要修改一下起始日期 注意月份为0~11月 也就是月份需要减一。 当然只有一部分HTML和JS代码不够运行的,文章最下面还附加了完整代码的下载地址 &lt;!...
Python新型冠状病毒疫情数据自动爬取+统计+发送报告+数据屏幕(三)发送篇
今天介绍的项目是使用 Itchat 发送统计报告 项目功能设计: 定时爬取疫情数据存入Mysql 进行数据分析制作疫情报告 使用itchat给亲人朋友发送分析报告 基于Django做数据屏幕 使用Tableau做数据分析 来看看最终效果 目前已经完成,预计2月12日前更新 使用 itchat 发送数据统计报告 itchat 是一个基于 web微信的一个框架,但微信官方并不允许使用这...
相关热词 c#导入fbx c#中屏蔽键盘某个键 c#正态概率密度 c#和数据库登陆界面设计 c# 高斯消去法 c# codedom c#读取cad文件文本 c# 控制全局鼠标移动 c# temp 目录 bytes初始化 c#
立即提问