addEventListener is not a function!求大神解答!跪谢

three.js报loader.addEventListener is not a function的错误

代码如下:
<!DOCTYPE html>









if ( ! Detector.webgl ) Detector.addGetWebGLMessage(); var container, stats; var camera, controls, scene, renderer; var cross; init(); animate(); function init() { camera = new THREE.PerspectiveCamera( 60, window.innerWidth / window.innerHeight, 0.01, 1e10 ); camera.position.z = 0.2; controls = new THREE.TrackballControls( camera ); controls.rotateSpeed = 5.0; controls.zoomSpeed = 5; controls.panSpeed = 2; controls.noZoom = false; controls.noPan = false; controls.staticMoving = true; controls.dynamicDampingFactor = 0.3; scene = new THREE.Scene(); scene.add( camera ); // light var dirLight = new THREE.DirectionalLight( 0xffffff ); dirLight.position.set( 200, 200, 1000 ).normalize(); camera.add( dirLight ); camera.add( dirLight.target ); // A begin var material = new THREE.MeshLambertMaterial( { color:0xffffff, side: THREE.DoubleSide } ); var loader = new THREE.VTKLoader(); loader.addEventListener( 'load', function ( event ) { var geometry = event.content; var mesh = new THREE.Mesh( geometry, material ); mesh.position.setY( - 0.09 ); scene.add( mesh ); } ); loader.load( "../model/bunny.vtk" ); // A end // renderer renderer = new THREE.WebGLRenderer( { antialias: false } ); renderer.setClearColorHex( 0x000000, 1 ); renderer.setSize( window.innerWidth, window.innerHeight ); container = document.createElement( 'div' ); document.body.appendChild( container ); container.appendChild( renderer.domElement ); stats = new Stats(); stats.domElement.style.position = 'absolute'; stats.domElement.style.top = '0px'; container.appendChild( stats.domElement ); // window.addEventListener( 'resize', onWindowResize, false ); } function onWindowResize() { camera.aspect = window.innerWidth / window.innerHeight; camera.updateProjectionMatrix(); renderer.setSize( window.innerWidth, window.innerHeight ); controls.handleResize(); } function animate() { requestAnimationFrame( animate ); controls.update(); renderer.render( scene, camera ); stats.update(); }



报错如下:
图片说明

1个回答

一个是全局发号器(例如ZooKeeper有Sequence型节点,或者自己弄个发号器服务不断产生递增值作为发号),但是效率会比较低。
二个是mapPartition,获得当前分区的分区号。然后分区号x一个系数+当前分区本地递增值。系数是分区最大的数据条数+一定冗余。
最省事是前者,最快但容易出问题是后者。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
微信支付相关,调用JSAPI缺少参数total_fee,求大神解答
调用统一支付的接口返回的数据是这样子的 ![图片说明](https://img-ask.csdn.net/upload/201709/04/1504533896_261373.jpg) 前台调用getBrandWCPayRequest代码是这样子的 ``` function onBridgeReady(data){ var tt=JSON.parse(data); alert(tt.package); WeixinJSBridge.invoke( 'getBrandWCPayRequest', { "appId":tt.appId, //公众号名称,由商户传入 "timeStamp":tt.timeStamp,//时间戳,自1970年以来的秒数 "nonceStr":tt.nonceStr, //随机串 "package":"prepay_id="+tt.pg, "signType":"MD5",//微信签名方式: "paySign":tt.paySign //微信签名 }, function(res){ if(res.err_msg == "get_brand_wcpay_request:ok" ) {alert("成功了")} // 使用以上方式判断前端返回,微信团队郑重提示:res.err_msg将在用户支付成功后返回 ok,但并不保证它绝对可靠。 else{alert("没有成功")} } ); if (typeof WeixinJSBridge == "undefined"){ if( document.addEventListener ){ document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false); }else if (document.attachEvent){ document.attachEvent('WeixinJSBridgeReady', onBridgeReady); document.attachEvent('onWeixinJSBridgeReady', onBridgeReady); } }else{ onBridgeReady(); } } ``` pg里面放着prepay_id 不知道哪里出问题,一直显示缺少参数total_fee 跪求大神解答
求大神拔刀相助:有关移动端app, plus is not defined问题
下面是一段移动app页面的html ```html document.getElementById("picture-btn").addEventListener('tap',function () { var btnArray = [{title:"拍照或录像"},{title:"选取现有的"}]; plus.nativeUI.actionSheet( { title:"选择照片", cancel:"取消", buttons:btnArray }, function(e){ var index = e.index; var text = "你刚点击了\""; switch (index){ case 0: text += "取消"; break; case 1: text += "拍照或录像"; break; case 2: text += "选取现有的"; break; } info.innerHTML = text+"\"按钮"; } ); }); ``` 我的html代码中包含了上面这一串代码,然后通过谷歌浏览器运行,会报错 Uncaught ReferenceError: plus is not defined; 请问这是什么原因
刷网上学习时网页弹窗怎么关闭,
//使用事件监听方式捕捉事件 video.addEventListener("timeupdate",function(){ var timeDisplay; //用秒数来显示当前播放进度 timeDisplay = Math.floor(video.currentTime); //当视频播放到 4s的时候做处理 if(dialogCounts[0] == timeDisplay){ if(flagTime){ tempRecord("auto"); returnConfirm(); closePage(); //此处只判断整数 flagTime = false; }else{ return false; } } if(dialogCounts[1] == timeDisplay){ if(flagTime1){ tempRecord("auto"); returnConfirm(); closePage(); //此处只判断整数 flagTime1 = false; }else{ return false; } } if(dialogCounts[2] == timeDisplay){ if(flagTime2){ tempRecord("auto"); returnConfirm(); closePage(); //此处只判断整数 flagTime2 = false; }else{ return false; } } if(dialogCounts[3] == timeDisplay){ if(flagTime3){ tempRecord("auto"); /* layer.confirm('亲!还在视频前吗,10秒后关闭视频?', { btn: ['在','不在'] //按钮 }, function(){ layer.closeAll(); player.play(); player.currentTime(currentTime); }, function(){ history.go(-1); }); */ returnConfirm(); closePage(); //此处只判断整数 flagTime3 = false; }else{ return false; } } },false); //保存视频进度 function tempRecord(type){ var isOver = "N"; if(isOver == 'N'){ player.pause();//暂停 var currentTimeParam = player.currentTime(); $.ajax({ type:"post", url:"pcoarOcManage/tempRecord.do", async:false, data:{ resourceId : resourceId, //resourceId targetId: id, learnTimeParam: currentTimeParam }, dataType:'json', success:function(data){ if(data.hasError == true){ layer.msg(data.message, {icon: 2}); return false; } currentTime = currentTimeParam; if(type == "temp"){ layer.msg(data.message, {icon: 1}); } }, complete:function(){ } }); }; }; //产生随机数 function randomNum(minNum,maxNum){ switch(arguments.length){ case 1: return parseInt(Math.random()*minNum+1,10); break; case 2: return parseInt(Math.random()*(maxNum-minNum+1)+minNum,10); break; default: return 0; break; } } //点击事件 function returnConfirm(){ var isOver = "N"; console.log("进入弹窗? "); if(isOver == 'N'){ layer.confirm('亲!还在观看吗?(若不在则10秒后自动关闭文件)', { btn: ['在'] //按钮 }, function(){ player.play(); player.currentTime(currentTime); window.clearTimeout(timer2); // 关闭第二个定时器 layer.closeAll(); }); } } //10秒事件 function closePage(){ var isOver = "N"; if(isOver == 'N'){ timer2 =setInterval(function(){ history.go(-1); },10000); } }
Jtopo节点问题两个节点一起动
动态创建一个新节点 之后基于这个节点生成一个新的节点 当拖拽第一个节点的时候希望第二个节点跟着一起动 我自己绑定了 ``` new_ne.addEventListener ( " mousedrag " , function( e ){ a.setLocation( subnet.positionX+ne.positionX+30, subnet.positionY+ne.positionY-10); }) ``` 结果不生效不知道为什么 麻烦大神指点 标注一下 ``` let a = new JTopo.CircleNode(ne.name); ``` 这是第二个节点 ``` a.setLocation(ne.positionX+30, ne.positionY-10); ``` 这个是他的位置 ``` ```
document is not defied是怎么回事?
最近在学html5跨文档通信时,浏览器报错:doucument is not defined?求教高手们,这是怎么回事? var defaultTitle = "Portal [new message]"; // var notificationTimer = null; var trustedOrigin = "http://localhost:8080"; // 消息处理 function messageHandler(e) { if (e.origin == trustedOrigin) { notify(e.data); } else { } } // 处理闪烁 function notify(message) { stopBlinking(); blinkTitle(message, defaultTitle); } // 停止闪烁 function stopBlinking() { if (notificationTimer != null) { clearTimeout(notificationTimer); } document.title = defaultTitle; } // 闪烁的信息 function blinkTitle(m1, m2) { // **ReferenceError: doucument is not defined** doucument.title = m1; notificationTimer = setTimeout(blinkTitle, 1000, m2, m1); } // 信息发送——向iframe function sendStatus() { var statusText = document.getElementById("statusText").value; sendString(statusText); } // 消息发送——向iframe function sendString(s) { document.getElementById("widget").contentWindow.postMessage(s, trustedOrigin); } function loadDemo() { document.getElementById("sendButton").addEventListener("click", sendStatus, true); document.getElementById("stopButton").addEventListener("click", stopBlinking, true); sendStatus(); } window.addEventListener("load", loadDemo, true); window.addEventListener("message", messageHandler, true);
各位大神们,谁知道怎样通过three.js导入外部3d模型,然后可以拖动模型,并且模型的一部分不能被单独拖动,这个问题困扰我很多天,现在还是没办法解决,求助各位大神了,万分感谢!
各位大神们,我现在可以导入3d模型,并且这个模型可以拖动,但是一部分模型被单独拖动,其他模型不动,代码如下: ``` <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>拖拽控件</title> <style> body { margin: 0; overflow: hidden; } #label { position: absolute; padding: 10px; background: rgba(255, 255, 255, 0.6); line-height: 1; border-radius: 5px; } </style> <script src="js/three.js"></script> <script src="js/jquery-1.9.1.js"></script> <script src="js/Detector.js"></script> <script src="js/TrackballControls.js"></script> <script src="js/dat.gui.min.js"></script> <script src="js/stats.min.js"></script> <script src="js/OBJLoader.js"></script> <script src="js/FBXLoader.js"></script> <script src="js/inflate.min.js"></script> <!--拖拽控件--> <script src="js/DragControls.js"></script> <!--可视化平移控件--> <script src="js/TransformControls.js"></script> </head> <body> <div id="WebGL-output"></div> <div id="Stats-output"></div> <div id="label"></div> <script> var objects=[]; var stats = initStats(); var scene, camera, renderer, controls, light, selectObject; // 场景 function initScene() { scene = new THREE.Scene(); } // 相机 function initCamera() { camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 0.1, 10000); camera.position.set(0, 400, 600); camera.lookAt(new THREE.Vector3(0, 0, 0)); } // 渲染器 function initRenderer() { if (Detector.webgl) { renderer = new THREE.WebGLRenderer({antialias: true}); } else { renderer = new THREE.CanvasRenderer(); } renderer.setSize(window.innerWidth, window.innerHeight); renderer.setClearColor(0x050505); document.body.appendChild(renderer.domElement); } // 初始化模型 function initContent() { var helper = new THREE.GridHelper(1800, 50, 0x4A4A4A); helper.setColors(0x9370DB); scene.add(helper); var loader = new THREE.OBJLoader(); loader.load( "moder/obj/windmill.obj", function ( group ) { group.position.x=400; group.scale.set(20, 20, 20);//模型放大20倍 //group.scale.color(0x3CB37 group.name="groups" scene.add( group ); objects.push(group); } ); var loader = new THREE.OBJLoader(); loader.load( "moder/obj/low.obj", function ( group ) { group.position.x=-400; group.scale.set(20, 20, 20);//模型放大20倍 //group.scale.color(0x3CB37 group.name="groupss"; scene.add( group ); objects.push(group); } ); var loader = new THREE.FBXLoader(); //Samba Dancing idle_2 loader.load( 'moder/fbx/pipeline.fbx', function ( object ) { //console.log(object); object.scale.set(1,1,1); scene.add( object ); objects.push(object); mixers=object.mixer = new THREE.AnimationMixer( object ); var action = object.mixer.clipAction( object.animations[0]); action.play(); object.traverse( function ( child ) { if ( child.isMesh ) { child.castShadow = true; child.receiveShadow = true; } } ); console.log(object); } ); /*var cubeGeometry = new THREE.BoxGeometry(100, 100, 100); var cubeMaterial = new THREE.MeshLambertMaterial({color: 0x9370DB}); var cube = new THREE.Mesh(cubeGeometry, cubeMaterial); cube.position.x = -600; cube.position.y = 50; cube.name = "cubes"; scene.add(cube); var sphereGeometry = new THREE.SphereGeometry(50, 50, 50, 50); var sphereMaterial = new THREE.MeshLambertMaterial({color: 0x3CB371}); var sphere = new THREE.Mesh(sphereGeometry, sphereMaterial); sphere.position.x = 200; sphere.position.y = 50; sphere.name = "sphere"; // sphere.position.z = 200; scene.add(sphere); var cylinderGeometry = new THREE.CylinderGeometry(50, 50, 100, 100); var cylinderMaterial = new THREE.MeshLambertMaterial({color: 0xCD7054}); var cylinder = new THREE.Mesh(cylinderGeometry, cylinderMaterial); cylinder.position.x = -200; cylinder.position.y = 50; cylinder.name = "cylinder"; scene.add(cylinder);*/ } console.log(objects); // 鼠标双击触发的方法 function onMouseDblclick(event) { // 获取 raycaster 和所有模型相交的数组,其中的元素按照距离排序,越近的越靠前 var intersects = getIntersects(event); // 获取选中最近的 Mesh 对象 if (intersects.length != 0 && intersects[0].object ) { selectObject = intersects[0].object.parent; changeMaterial(selectObject); console.log(changeMaterial); } else { alert("未选中 Mesh!"); } } // 获取与射线相交的对象数组 function getIntersects(event) { event.preventDefault(); console.log("event.clientX:" + event.clientX) console.log("event.clientY:" + event.clientY) // 声明 raycaster 和 mouse 变量 var raycaster = new THREE.Raycaster(); var mouse = new THREE.Vector2(); // 通过鼠标点击位置,计算出 raycaster 所需点的位置,以屏幕为中心点,范围 -1 到 1 mouse.x = (event.clientX / window.innerWidth) * 2 - 1; mouse.y = -(event.clientY / window.innerHeight) * 2 + 1; //通过鼠标点击的位置(二维坐标)和当前相机的矩阵计算出射线位置 raycaster.setFromCamera(mouse, camera); // 获取与射线相交的对象数组,其中的元素按照距离排序,越近的越靠前 var intersects = raycaster.intersectObjects(scene.children); var intersects=intersects.parent; console.log(intersects); //返回选中的对象 return intersects; } // 窗口变动触发的方法 function onWindowResize() { camera.aspect = window.innerWidth / window.innerHeight; camera.updateProjectionMatrix(); renderer.setSize(window.innerWidth, window.innerHeight); } // 键盘按下触发的方法 function onKeyDown(event) { switch (event.keyCode) { case 13: initCamera(); initControls(); break; } } // 改变对象材质属性 function changeMaterial(object) { var material = new THREE.MeshLambertMaterial({ color: 0xffffff * Math.random(), transparent: object.material.transparent ? false : true, opacity: 0.8, }); object.material = material; } // 初始化轨迹球控件 function initControls() { controls = new THREE.TrackballControls(camera, renderer.domElement); // controls.noRotate = true; controls.noPan = true; // 视角最小距离 controls.minDistance = 1000; // 视角最远距离 controls.maxDistance = 5000; } // 添加拖拽控件 function initDragControls() { // 添加平移控件 var transformControls = new THREE.TransformControls(camera, renderer.domElement); scene.add(transformControls); // 过滤不是 Mesh 的物体,例如辅助网格 //var objects = []; /*for (let i = 0; i < scene.children.length; i++) { if (scene.children[i].isMesh) { objects.push(scene.children[i]); } //objects.push(object[i].parent); }*/ // 初始化拖拽控件 var dragControls = new THREE.DragControls(objects, camera, renderer.domElement); // 鼠标略过事件 dragControls.addEventListener('hoveron', function (event) { // 让变换控件对象和选中的对象绑定 transformControls.attach(event.object); }); // 开始拖拽 dragControls.addEventListener('dragstart', function (event) { controls.enabled = false; }); // 拖拽结束 dragControls.addEventListener('dragend', function (event) { controls.enabled = true; }); console.log(objects.length); } // 初始化灯光 function initLight() { light = new THREE.SpotLight(0xffffff); light.position.set(-300, 600, -400); light.castShadow = true; scene.add(light); scene.add(new THREE.AmbientLight(0x5C5C5C)); } // 初始化 dat.GUI function initGui() { // 保存需要修改相关数据的对象 gui = new function () { } // 属性添加到控件 var guiControls = new dat.GUI(); } // 初始化性能插件 function initStats() { var stats = new Stats(); stats.domElement.style.position = 'absolute'; stats.domElement.style.left = '0px'; stats.domElement.style.top = '0px'; document.body.appendChild(stats.domElement); return stats; } // 更新div的位置 function renderDiv(object) { // 获取窗口的一半高度和宽度 let halfWidth = window.innerWidth / 2; let halfHeight = window.innerHeight / 2; // 逆转相机求出二维坐标 let vector = object.position.clone().project(camera); // 修改 div 的位置 $("#label").css({ left: vector.x * halfWidth + halfWidth, top: -vector.y * halfHeight + halfHeight - object.position.y }); // 显示模型信息 //$("#label").text("name:" + object.name); } // 更新控件 function update() { stats.update(); controls.update(); controls.handleResize(); //transformControls.update(); } // 初始化 function init() { initScene(); initCamera(); initRenderer(); initContent(); initLight(); initControls(); initGui(); initDragControls(); // addEventListener('dblclick', onMouseDblclick, false); addEventListener('resize', onWindowResize, false); addEventListener('keydown', onKeyDown, false); } function animate() { if (selectObject != undefined && selectObject != null) { renderDiv(selectObject); } requestAnimationFrame(animate); renderer.render(scene, camera); update(); } init(); animate(); </script> </body> </html> ``` 一部分模型被单独拖动的效果如下: ![图片说明](https://img-ask.csdn.net/upload/201911/04/1572863955_100421.png) 然后我再修改当鼠标略过事件: ![图片说明](https://img-ask.csdn.net/upload/201911/04/1572864098_336978.png) 整个模型可以一起被拖动,但是模型混乱:效果图如下: ![图片说明](https://img-ask.csdn.net/upload/201911/05/1572916540_633061.png) 希望路过的好心人帮帮忙,万分感谢!!!!!!
h5和app交互,求大神给答案!!!
function goUrl(){ var i =0; sessionStorage.setItem('goto_url','<%=goto_url%>'); channelCode = window.sessionStorage.getItem("channelCode"); if (channelCode == 18){//手机银行跳转,登陆 debugger ; alert("1"); if(window.localStorage.resId1 == 1){ //安卓 alert("2"); window.app_score.toLoginPhone();//调用安卓的原生方法 window.loginInPhone=loginInPhone;//回调方法 function loginInPhone(data){ if(data != '' && data != null && data != undefined) { if(typeof(data) == "string"){ data = JSON.parse(data); } } } }else{//IOS alert("3"); function setupWebViewJavascriptBridge(callback) { if(window.BOCWebViewJavascriptBridge) { return callback(BOCWebViewJavascriptBridge); }else{ document.addEventListener('WebViewJavascriptBridgeReady',function(){callback(BOCWebViewJavascriptBridge);},false); } if(window.WVJBCallbacks) { return window.WVJBCallbacks.push(callback); } window.WVJBCallbacks = [callback]; var WVJBIframe = document.createElement('iframe'); WVJBIframe.style.display = 'none'; WVJBIframe.src = 'wvjbscheme://__BRIDGE_LOADED__'; document.documentElement.appendChild(WVJBIframe); setTimeout(function() { document.documentElement.removeChild(WVJBIframe); }, 0); }//以上的代码是固定的,只要是交互就需要写 setupWebViewJavascriptBridge(function(bridge){ //所有的和app交互的代码都在这方法填写 bridge.registerHandler('loginInPhone',function(data,responseCallback){//注册回调方法 if(data != '' && data != null && data != undefined) { if(typeof(data) == "string"){ data = JSON.parse(data); } } //toLoginPhone为ios端register的handleName bridge.callHandler('toLoginPhone', function(){}); //调用手机银行的原生方法 //网上说calllback是处理返回数据的方法,可是没有啊!!!! bridge.init(function(message,responseCallback){ var data = {'Javascript Responds':'Wee!'}; responseCallback(data); }); }); } )} var ticket = data.ticketInfo;//票 var clientId = data.CID;//客户id var slientId = data.SID;//用户id var card = data.card; //window.location.href="${pageContext.request.contextPath}/mobilePage/login/login.jsp"; window.location.href="${pageContext.request.contextPath}/bankLoginMobileCode.do?ticket="+ticket+"&clientId="+clientId+"&SlientId="+SlientId+"&card="+card; } } 这是h5的js调用但是 没有调起来app的方法,求大神给答案!!!
TypeError: Error #1010: 术语尚未定义,并且无任何属性。 at _fla::MainTimeline/init() at _fla::MainTimeline/frame1()
import flash.display.MovieClip; var count:int=4;//图块数量 init();//初始化 function init():void { for(var i:int=0;i<count;i++) { this["p"+i].alpha=0.1;//设置放置区域的四个图块的透明度 this["mc"+i].addEventListener(MouseEvent.MOUSE_DOWN,StartDragEvent);//添加鼠标按下拖动事件 this["mc"+i].addEventListener(MouseEvent.MOUSE_UP,StopDragEvent);//添加鼠标弹起停止拖动事件 } } function StartDragEvent(e:MouseEvent):void { var obj:MovieClip=e.currentTarget as MovieClip; this.setChildIndex(obj,this.numChildren-1);//将被拖动的图块放到最上层 obj.startDrag();//开始拖动 } function StopDragEvent(e:MouseEvent):void { var obj:MovieClip=e.currentTarget as MovieClip; obj.stopDrag();//停止拖动 var t:int=int(obj.name.slice(2));//获取图块的序号,这就是为什么要和位置图块一致 if(Math.abs(obj.x-this["p"+t].x)<20&&Math.abs(obj.y-this["p"+t].y)<20)//如果正确位置的图块和拖动图块的位置相差不超过20像素,则拼图成功。 { this["p"+t].alpha=1; obj.visible=false; } }
egret导入龙骨动画但是在浏览器上无法显示
在用egret调用龙骨动画的时候,在浏览器页面总是显示不成功 代码: ``` class Drangontest extends egret.DisplayObjectContainer{ constructor() { super(); this.addEventListener(egret.Event.ADDED_TO_STAGE,this.onAddToStage,this); } private onAddToStage(event:egret.Event): void { RES.addEventListener(RES.ResourceEvent.CONFIG_COMPLETE,this.drangon,this); RES.loadConfig("resource/resource.json","resource/"); RES.loadGroup("se"); RES.loadGroup("te"); RES.loadGroup("tepg"); } private drangon():void{ var dragonbonesData = RES.getRes( "ske" ); var textureData = RES.getRes( "tex" ); var texture = RES.getRes( "texpng" ); var dragonbonesFactory:dragonBones.EgretFactory = new dragonBones.EgretFactory(); dragonbonesFactory.addDragonBonesData(dragonBones.DataParser.parseDragonBonesData(dragonbonesData)); dragonbonesFactory.addTextureAtlas(new dragonBones.EgretTextureAtlas(texture,textureData)); var armature: dragonBones.Armature = dragonbonesFactory.buildArmature("robot"); this.addChild(armature.display); armature.display.x = 200; armature.display.y = 300; armature.display.scaleX = 0.5; armature.display.scaleY = 0.5; dragonBones.WorldClock.clock.add( armature ); armature.animation.gotoAndPlay("Run"); egret.Ticker.getInstance().register( function(frameTime:number){dragonBones.WorldClock.clock.advanceTime(0.01)}, this ); } } ``` 资源导入 ``` { "resources": [ {"name":"bgImage","type":"image","url":"assets/bg.jpg"}, {"name":"egretIcon","type":"image","url":"assets/egret_icon.png"}, {"name":"description","type":"json","url":"config/description.json"}, {"name":"ske","type":"json","url":"assets/NewProject_ske.json"}, {"name":"tex","type":"json","url":"assets/NewProject_tex.json"}, {"name":"texpng","type":"image","url":"assets/NewProject_tex.png"} ], "groups": [ {"name":"preload","keys":"bgImage,egretIcon"}, {"name":"se","keys":"ske"}, {"name":"te","keys":"tex"}, {"name":"tepg","keys":"texpng"} ] } ``` 然后再服务器端的错误提示是这样的 ![图片说明](https://img-ask.csdn.net/upload/202001/26/1580019191_73338.png) 因为没有C币了没法悬赏了呜呜呜 先谢谢ge'we大佬
求助,ios微信浏览器播放音频问题?
h5项目中,需要自动播放音频,音频地址接口获取 ``` mounted() { this.fetchDialogInfo(); }, methods: { // 获取数据 fetchDialogInfo() { //此处调接口获取音频地址this.src this.initAudio() }, // 初始化播放器 initAudio() { this.player.src = this.src ; document.addEventListener( "WeixinJSBridgeReady", function() { alert(111) this.player.play(); }, false ); }, } ``` 网上找的解决办法都是使用WeixinJSBridgeReady,但是我这里却触发不了 alert都不出来,求问各位大神是什么原因呀?
addEventListener监听事件无效?
<script type="text/html" id="option-picker"> <div class="option-picker-addr" id="option-addr">         <div class="option-picker-send">           <span class="option-picker-text">发货</span>           <img class="option-picker-img" src="https://image.hisento.com/assets/index/addr.png">           <div class="option-picker-select">             <span class="option-picker-city" id="city_text">请选择城市</span>             <img class="option-picker-img" src="https://image.hisento.com/assets/index/addr.png">           </div>           <div class="option-picker-mail">快递:免运费</div>           <div class="option-picker-sale">月销:200</div>         </div> </div> </script>  window.LArea = (function() {     var MobileArea = function() {         this.gearArea;         this.data;         this.index = 0;         this.value = [0, 0, 0];         this.currnt = ''     }     MobileArea.prototype = {         init: function(params) {             this.params = params;             var _html=document.getElementById('option-picker').innerHTML;                 document.getElementsByClassName('option-picker1')[0].innerHTML=_html;             this.currnt = params.trigger             this.trigger = document.querySelector(params.trigger);             this.keys = params.keys;             this.type = params.type||1;             switch (this.type) {                 case 1:                 case 2:                     break;                 default:                     throw new Error('错误提示: 没有这种数据源类型');                     break;             }             this.bindEvent();         },         getData: function(callback) {           var _self = this;           if (typeof _self.params.data == "object") {             _self.data = _self.params.data;             callback();           } else {             var xhr = new XMLHttpRequest();             xhr.open('get', _self.params.data);             xhr.onload = function(e) {               if ((xhr.status >= 200 && xhr.status < 300) || xhr.status === 0) {                 var responseData = JSON.parse(xhr.responseText);                 _self.data = responseData.data;                 if (callback) {                   callback()                 };               }             }             xhr.send();           }         },         bindEvent: function() {             var _self = this;             //呼出插件             function popupArea(e) {               console.log(11)                 _self.gearArea = document.createElement("div");                 _self.gearArea.className = "gearArea";                 _self.gearArea.innerHTML = '<div class="area_ctrl slideInUp">' +                     '<div class="area_btn_box">' +                     '<div class="area_btn larea_cancel">取消</div>' +                     '<div class="area_btn larea_finish">确定</div>' +                     '</div>' +                     '<div class="area_roll_mask">' +                     '<div class="area_roll">' +                     '<div>' +                     '<div class="gear area_province" data-areatype="area_province"></div>' +                     '<div class="area_grid">' +                     '</div>' +                     '</div>' +                     '<div>' +                     '<div class="gear area_city" data-areatype="area_city"></div>' +                     '<div class="area_grid">' +                     '</div>' +                     '</div>' +                     '<div>' +                     '<div class="gear area_county" data-areatype="area_county"></div>' +                     '<div class="area_grid">' +                     '</div>' +                     '</div>' +                     '</div>' +                     '</div>' +                     '</div>';                 document.body.appendChild(_self.gearArea);                 areaCtrlInit();                 var larea_cancel = _self.gearArea.querySelector(".larea_cancel");                 larea_cancel.addEventListener('touchstart', function(e) {                     _self.close(e);                 });                 var larea_finish = _self.gearArea.querySelector(".larea_finish");                 larea_finish.addEventListener('touchstart', function(e) {                     _self.finish(e);                 });                 var area_province = _self.gearArea.querySelector(".area_province");                 var area_city = _self.gearArea.querySelector(".area_city");                 var area_county = _self.gearArea.querySelector(".area_county");                 area_province.addEventListener('touchstart', gearTouchStart);                 area_city.addEventListener('touchstart', gearTouchStart);                 area_county.addEventListener('touchstart', gearTouchStart);                 area_province.addEventListener('touchmove', gearTouchMove);                 area_city.addEventListener('touchmove', gearTouchMove);                 area_county.addEventListener('touchmove', gearTouchMove);                 area_province.addEventListener('touchend', gearTouchEnd);                 area_city.addEventListener('touchend', gearTouchEnd);                 area_county.addEventListener('touchend', gearTouchEnd);             }             //初始化插件默认值             function areaCtrlInit() {                 _self.gearArea.querySelector(".area_province").setAttribute("val", _self.value[0]);                 _self.gearArea.querySelector(".area_city").setAttribute("val", _self.value[1]);                 _self.gearArea.querySelector(".area_county").setAttribute("val", _self.value[2]);                 switch (_self.type) {                     case 1:                         _self.setGearTooth(_self.data);                         break;                     case 2:                         _self.setGearTooth(_self.data[0]);                         break;                 }             }             //触摸开始             function gearTouchStart(e) {                 e.preventDefault();                 var target = e.target;                 while (true) {                     if (!target.classList.contains("gear")) {                         target = target.parentElement;                     } else {                         break                     }                 }                 clearInterval(target["int_" + target.id]);                 target["old_" + target.id] = e.targetTouches[0].screenY;                 target["o_t_" + target.id] = (new Date()).getTime();                 var top = target.getAttribute('top');                 if (top) {                     target["o_d_" + target.id] = parseFloat(top.replace(/em/g, ""));                 } else {                     target["o_d_" + target.id] = 0;                 }                 target.style.webkitTransitionDuration = target.style.transitionDuration = '0ms';             }             //手指移动             function gearTouchMove(e) {                 e.preventDefault();                 var target = e.target;                 while (true) {                     if (!target.classList.contains("gear")) {                         target = target.parentElement;                     } else {                         break                     }                 }                 target["new_" + target.id] = e.targetTouches[0].screenY;                 target["n_t_" + target.id] = (new Date()).getTime();                 var f = (target["new_" + target.id] - target["old_" + target.id]) * 30 / window.innerHeight;                 target["pos_" + target.id] = target["o_d_" + target.id] + f;                 target.style["-webkit-transform"] = 'translate3d(0,' + target["pos_" + target.id] + 'em,0)';                 target.setAttribute('top', target["pos_" + target.id] + 'em');                 if(e.targetTouches[0].screenY<1){                     gearTouchEnd(e);                 };             }             //离开屏幕             function gearTouchEnd(e) {                 e.preventDefault();                 var target = e.target;                 while (true) {                     if (!target.classList.contains("gear")) {                         target = target.parentElement;                     } else {                         break;                     }                 }                 var flag = (target["new_" + target.id] - target["old_" + target.id]) / (target["n_t_" + target.id] - target["o_t_" + target.id]);                 if (Math.abs(flag) <= 0.2) {                     target["spd_" + target.id] = (flag < 0 ? -0.08 : 0.08);                 } else {                     if (Math.abs(flag) <= 0.5) {                         target["spd_" + target.id] = (flag < 0 ? -0.16 : 0.16);                     } else {                         target["spd_" + target.id] = flag / 2;                     }                 }                 if (!target["pos_" + target.id]) {                     target["pos_" + target.id] = 0;                 }                 rollGear(target);             }             //缓动效果             function rollGear(target) {                 var d = 0;                 var stopGear = false;                 function setDuration() {                     target.style.webkitTransitionDuration = target.style.transitionDuration = '200ms';                     stopGear = true;                 }                 clearInterval(target["int_" + target.id]);                 target["int_" + target.id] = setInterval(function() {                     var pos = target["pos_" + target.id];                     var speed = target["spd_" + target.id] * Math.exp(-0.03 * d);                     pos += speed;                     if (Math.abs(speed) > 0.1) {} else {                         var b = Math.round(pos / 2) * 2;                         pos = b;                         setDuration();                     }                     if (pos > 0) {                         pos = 0;                         setDuration();                     }                     var minTop = -(target.dataset.len - 1) * 2;                     if (pos < minTop) {                         pos = minTop;                         setDuration();                     }                     if (stopGear) {                         var gearVal = Math.abs(pos) / 2;                         setGear(target, gearVal);                         clearInterval(target["int_" + target.id]);                     }                     target["pos_" + target.id] = pos;                     target.style["-webkit-transform"] = 'translate3d(0,' + pos + 'em,0)';                     target.setAttribute('top', pos + 'em');                     d++;                 }, 30);             }             //控制插件滚动后停留的值             function setGear(target, val) {                 val = Math.round(val);                 target.setAttribute("val", val);                 switch (_self.type) {                     case 1:                          _self.setGearTooth(_self.data);                         break;                     case 2:                      switch(target.dataset['areatype']){                          case 'area_province':                          _self.setGearTooth(_self.data[0]);                              break;                          case 'area_city':                              var ref = target.childNodes[val].getAttribute('ref');                              var childData=[];                              var nextData= _self.data[2];                              for (var i in nextData) {                                  if(i==ref){                                     childData = nextData[i];                                     break;                                  }                              };                         _self.index=2;                         _self.setGearTooth(childData);                              break;                      }                 }                              }             _self.getData(function() {             //   _self.trigger.addEventListener('click', popupArea);             console.log(_self.trigger)               _self.trigger.addEventListener('click', function(){                   alert(111)               });             });         },         //重置节点个数         setGearTooth: function(data) {             var _self = this;             var item = data || [];             var l = item.length;             var gearChild = _self.gearArea.querySelectorAll(".gear");             var gearVal = gearChild[_self.index].getAttribute('val');             var maxVal = l - 1;             if (gearVal > maxVal) {                 gearVal = maxVal;             }             gearChild[_self.index].setAttribute('data-len', l);             if (l > 0) {                 var id = item[gearVal][this.keys['id']];                 var childData;                 switch (_self.type) {                     case 1:                     childData = item[gearVal].child                         break;                     case 2:                      var nextData= _self.data[_self.index+1]                       for (var i in nextData) {                          if(i==id){                             childData = nextData[i];                             break;                          }                      };                         break;                 }                 var itemStr = "";                 for (var i = 0; i < l; i++) {                     itemStr += "<div class='tooth'  ref='" + item[i][this.keys['id']] + "'>" + item[i][this.keys['name']] + "</div>";                 }                 gearChild[_self.index].innerHTML = itemStr;                 gearChild[_self.index].style["-webkit-transform"] = 'translate3d(0,' + (-gearVal * 2) + 'em,0)';                 gearChild[_self.index].setAttribute('top', -gearVal * 2 + 'em');                 gearChild[_self.index].setAttribute('val', gearVal);                 _self.index++;                 if (_self.index > 2) {                     _self.index = 0;                     return;                 }                 _self.setGearTooth(childData);             } else {                 gearChild[_self.index].innerHTML = "<div class='tooth'></div>";                 gearChild[_self.index].setAttribute('val', 0);                 if(_self.index==1){                     gearChild[2].innerHTML = "<div class='tooth'></div>";                     gearChild[2].setAttribute('val', 0);                 }                 _self.index = 0;             }         },         finish: function(e) {             var _self = this;             var area_province = _self.gearArea.querySelector(".area_province");             var area_city = _self.gearArea.querySelector(".area_city");             var area_county = _self.gearArea.querySelector(".area_county");             var provinceVal = parseInt(area_province.getAttribute("val"));             var provinceText = area_province.childNodes[provinceVal].textContent;             var provinceCode = area_province.childNodes[provinceVal].getAttribute('ref');             var cityVal = parseInt(area_city.getAttribute("val"));             var cityText = area_city.childNodes[cityVal].textContent;             var cityCode = area_city.childNodes[cityVal].getAttribute('ref');             var countyVal = parseInt(area_county.getAttribute("val"));             var countyText = area_county.childNodes[countyVal].textContent;             var countyCode = area_county.childNodes[countyVal].getAttribute('ref');             _self.trigger.value = provinceText + ((cityText)?(',' + cityText):(''))+ ((countyText)?(',' + countyText):(''));             _self.value = [provinceVal, cityVal, countyVal];             if(this.valueTo){                 this.valueTo.value= provinceCode +((cityCode)?(',' + cityCode):('')) + ((countyCode)?(',' + countyCode):(''));             }             _self.close(e);         },         close: function(e) {             e.preventDefault();             var _self = this;             var evt = new CustomEvent('input');             _self.trigger.dispatchEvent(evt);             document.body.removeChild(_self.gearArea);             _self.gearArea=null;         }     }     return MobileArea;   })();   window.onload = function(){    var LAreaData=[{     "id":"2","name":"\u5317\u4eac\u5e02",     "child":[{       "id":"2288","name":"\u4e1c\u57ce\u533a"},       {"id":"2301","name":"\u5927\u5174\u533a"},       {"id":"2300","name":"\u660c\u5e73\u533a"},       {"id":"2299","name":"\u987a\u4e49\u533a"},       {"id":"2298","name":"\u901a\u5dde\u533a"},       {"id":"2297","name":"\u623f\u5c71\u533a"},       {"id":"2296","name":"\u95e8\u5934\u6c9f\u533a"},       {"id":"2295","name":"\u6d77\u6dc0\u533a"},       {"id":"2294","name":"\u77f3\u666f\u5c71\u533a"},       {"id":"2293","name":"\u4e30\u53f0\u533a"},       {"id":"2292","name":"\u671d\u9633\u533a"},       {"id":"2291","name":"\u5ba3\u6b66\u533a"},       {"id":"2290","name":"\u5d07\u6587\u533a"},       {"id":"2289","name":"\u897f\u57ce\u533a"},       {"id":"2051","name":"\u5ef6\u5e86\u53bf",       "child":[         {"id":"2099","name":"\u5ef6\u5e86\u9547"},         {"id":"2100","name":"\u6c38\u5b81\u9547"},         {"id":"2101","name":"\u5eb7\u5e84\u9547"},         {"id":"2102","name":"\u5927\u6986\u6811\u9547"},         {"id":"2103","name":"\u4e95\u5e84\u9547"},         {"id":"2104","name":"\u516b\u8fbe\u5cad\u9547"}       ]     }]   }];   var area1 = new LArea();   area1.init({       'trigger': '#city_text', //触发选择控件的文本框,同时选择完毕后name属性输出到该位置       'keys': {           id: 'id',           name: 'name'       }, //绑定数据源相关字段 id对应valueTo的value属性输出 name对应trigger的value属性输出       'type': 1, //数据源类型       'data': LAreaData //数据源   }); } _self.trigger.addEventListener('click', function(){                   alert(111)               });这个监听事件怎么无效的
请大佬帮忙指正这部分dom0和dom2事件相关代码的问题
代码要实现的目的是检查用户名和密码格式是否正确,作业需要用到这两个事件,但是不知道为什么一直不对,希望懂这个的大佬教教我该怎么改 这里是部分相关html代码 ``` <label> 用户名: <input type="text" id="fullname" />*用户名由字母、数字组成,首字母必须为英文,字符长度在4-20之间 </label> <br /> <label> 密码:<input type="password" id="pwd" />*密码长度6-8位 </label> ``` 这里是dom2事件的代码,检验用户名格式 ``` function checkname() //检查用户名 { var dom = document.getElementById("fullname"); var pos = dom.value.search(/^^[a-zA-Z][a-zA-Z0-9]{3,19}$/); if (pos != 0) { alert("用户名格式不正确!"); return false; } else { return true; } } var funa = document.getElementById("fullname"); funa.addEventListener("change", checkname(), true); ``` 这里是dom0事件的代码,检验密码格式 ``` //检查密码 document.getElementById("pwd").onchange = function () { alert(this.value.length); if (this.value.length < 6 || this.value.length > 8) { alert("密码长度不正确!"); return false; } else return true; } ```
vue中echarts图无法渲染
我在父组件中定义了一个容器,然后定义了echarts图的基本配置项,在created中调用一个方法,获取后台数据,然后将数据传递到子组件中渲染echarts图,现在数据都能成功传递,但是一直无法成功渲染echarts图 以下为父组件代码 ``` // 父组件代码 <template> <div> <div class="leftChart"> <linegraph :id="'leftChart'" :data="option1" style="height:330px;width:100%"></linegraph> </div> </div> </template> <script> // 引入子组件 import linegraph from "./EchartsShow.vue"; // 引入网络请求方法 import { getSumData } from "@/api/crd/orgLimitView/orgView" export default { data () { return { // echarts图基本配置项,未定义具体数据 option1: { title: { text: '授信额度结构', subtext: '行业维度', x: 'center', top: '3%' }, tooltip: { trigger: 'item', formatter: "{a} <br/>{b} : {c} ({d}%)" }, legend: { orient: 'vertical', left: '2%', top: '2%' }, series: [ { name: '行业', type: 'pie', radius: '55%', center: ['50%', '55%'], itemStyle: { emphasis: { shadowBlur: 10, shadowOffsetX: 0, shadowColor: 'rgba(0, 0, 0, 0.5)' } } } ] }, } }, created () { this.getSum() }, methods: { getSum () { // 调用get请求方法,获取后台数据,由于进度问题,目前只能传递固定的参数,才能获取到测试数据 getSumData('1', '01000').then(res => { if (res.status != 200) { return this.$message.error('获取数据失败,请重试') } const datas = res.data.data // 由于拿到的数据非常复杂繁多,需要进行一些处理,才能拿到需要的数据 this.option1.legend.data = this.tableDatas.map(item => { // 由于后台拿到的数据,都是数字类的码值,this.dicInd[item.industry] 用来翻译后台数据 return this.dicInd[item.industry] }) this.option1.series[0].data = this.tableDatas.map(item => { return { value: item.approveExpAmount, name: this.dicInd[item.industry] } }) console.log(this.option1.legend.data, '行业'); console.log(this.option1.series[0].data, '行业带数据'); }) } }, components: { linegraph } } </script> ``` 以下为子组件代码 ``` // 子组件代码 <template> <div v-bind:id="id" v-bind:data="data"></div> </template> <script> import echarts from "echarts"; export default { name: "echartsShow", data () { return { ChartLineGraph: null }; }, // 深度监听 父组件刚开始没有值,只有图标的配置项 // 父组件ajax请求后改变数据的值,传递过来,图标已生成,监听传过来的值的改变 watch: { data: { deep: true, handler: function (newVal, oldVal) { if (newvalue) { this.drawLineGraph(this.id, newVal) } else { this.drawLineGraph(this.id, oldVal) } } } }, props: ["id", "data"], created() { console.log(this.data, '打印传递过来的图表数据') }, mounted () { this.drawLineGraph(this.id, this.data); console.log(this.id, '打印id值') console.log(this.data, '打印data值') }, methods: { drawLineGraph (id, data) { let _this = this; let myChart = document.getElementById(id); this.ChartLineGraph = echarts.init(myChart); this.ChartLineGraph.setOption(data); window.addEventListener("resize", function () { _this.ChartLineGraph.resize(); }); } }, beforeDestroy () { if (this.ChartLineGraph) { this.ChartLineGraph.clear(); } } }; </script> ``` 从后台获取数据后,成功传递给子组件,但是echarts无法成功渲染 ![图片说明](https://img-ask.csdn.net/upload/202001/07/1578384445_959195.png) ![图片说明](https://img-ask.csdn.net/upload/202001/07/1578384684_683561.png) ![图片说明](https://img-ask.csdn.net/upload/202001/07/1578384616_880352.png) ![图片说明](https://img-ask.csdn.net/upload/202001/07/1578384792_786796.png) 经过多次尝试,我遇到了一个奇怪的问题 ![图片说明](https://img-ask.csdn.net/upload/202001/07/1578385072_241075.png) ![图片说明](https://img-ask.csdn.net/upload/202001/07/1578385147_470918.png) 求各位大佬指点,我的代码哪个地方写错了,如何才能成功渲染echarts
运行JSP文件显示500,怎么解决。
1.运行JSP文件出现500服务器错误 2.这是JSP文件源代码 <body onload=show()> <% String un = request.getParameter("username"); UserDaoImpl dao = new UserDaoImpl(); String job = dao.FindWork(un); String mymessage = "mymessage.jsp?username=" + un; String repassword = "repassword.jsp?username=" + un; String spendcheck = "spendcheck.jsp?username=" + un; %> <div id="date" onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';"></div> <div id="slideMenu"> <ul id="menu"> <li id="li0"><a href=<%=mymessage%> target="mainFrame">个人信息</a></li> <li id="li1"><a href=<%=repassword%> target="mainFrame">修改密码</a></li> <% if (job.equals("card")) { %> <li id="li3"><a href="cardmanager.jsp" target="mainFrame">卡查询</a></li> <li id="li7"><a href="Carder.jsp" target="mainFrame">卡注册</a></li> <li id="li8"><a href="CardDel.jsp" target="mainFrame">卡注销</a></li> <% } %> <% if (job.equals("library")) { %> <li id="li4"><a href="librarymanager.jsp" target="mainFrame">‘˜图书借阅查询</a></li> <li id="li6"><a href="libraryer.jsp" target="mainFrame">‘˜图书借阅</a></li> <li id="li9"><a href="BookReturn.jsp" target="mainFrame">图书归还</a></li> <% } %> <li id="li5"><a href=<%=spendcheck%> target="mainFrame">‘˜消费查询</a></li> </ul> </div> <div id="footer"> <span><a id="back">退出登录</a></span> </div> <script type="text/javascript"> var bk=document.getElementById("back"); bk.addEventListener("click",function(){ window.top.location.href="index.jsp"; },false); </script> </body> </html> 3.以下是错误描述 HTTP Status 500 – Internal Server Error Type Exception Report Message java.lang.NullPointerException Description The server encountered an unexpected condition that prevented it from fulfilling the request. Exception org.apache.jasper.JasperException: java.lang.NullPointerException org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:598) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:514) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330) javax.servlet.http.HttpServlet.service(HttpServlet.java:742) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) Root Cause java.lang.NullPointerException org.apache.jsp.left_jsp._jspService(left_jsp.java:161) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:742) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:476) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330) javax.servlet.http.HttpServlet.service(HttpServlet.java:742) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) Note The full stack trace of the root cause is available in the server logs. Apache Tomcat/8.5.40 数据库开了但是不知道有没有连接
关于js怎么解析后端传来的blob url地址
![图片说明](https://img-ask.csdn.net/upload/201912/06/1575612122_646347.png) 要实现文件上传功能,通过createObjectURL获得blob url地址,并存入MySQL。然后用springmvc前端控制器取出blob url,存入model域中,带到前端页面,将blob url带到前端,用EL表达式取出,放在video标签的src属性中,然后用执行,为啥无法加载file,这是js播放的代码 var video1=document.querySelector('video'); var mediaSource=new MediaSource; mediaSource.addEventListener('sourceopen',sourceOpen); function sourceOpen(){ var mediaSource=this; var sourceBuffer = mediaSource.addSourceBuffer('video/mp4;codecs="avc1.42E01E, mp4a.40.2"'); sourceBuffer.addEventListener('updateend',function(){ mediaSource.endOfStream(); video1.play(); }) sourceBuffer.appendBuffer(buf); } ``` ```
【新手跪求大神T_T】FLEX上传java服务器端的时候一直提示路径不对 我都快被整疯了
自己想设计flex上传的功能 所以在网上寻找上传的例子 但是没有一个能运行成功的 所有的例子都报这个错误: Error #2044: 未处理的 IOErrorEvent:。 text=Error #2038: 文件 I/O 错误。 java文件我用tomcat加载的时候没问题为什么还出现这个错误呢 web.xml中 url-pattern :/servlet/UploadFile servlet-name: UploadFile flex的代码是这样的 <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" horizontalAlign="left" fontSize="12" initialize="init()" viewSourceURL="srcview/index.html"> <mx:NumberFormatter id="filesizeFormatter" useThousandsSeparator="true"/> <mx:Script> <![CDATA[ import mx.events.CollectionEvent; import mx.formatters.NumberFormatter; import mx.formatters.CurrencyFormatter; import mx.collections.ArrayCollection; import mx.controls.Alert; private var fileRefs: FileReferenceList = new FileReferenceList(); //这个地址是我测试用的服务器地址 private var urlrequest: URLRequest = new URLRequest("http://localhost:8080/abc/servlet/UploadFile"); [Bindable] private var selectedFiles: ArrayCollection = new ArrayCollection([]); private var singleThreadFiles: Array = []; [Bindable] private var useSingleThread: Boolean = true; private function init(): void { Security.allowDomain("*"); fileRefs.addEventListener(Event.SELECT, fileSelectHandler); fileRefs.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); fileRefs.addEventListener(Event.COMPLETE, completeHandler); addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); } private function selectFile(): void { fileRefs.browse([new FileFilter("Images (*.jpg, *.jpeg, *.gif, *.png)", "*.jpg;*.jpeg;*.gif;*.png"), new FileFilter("所有文件(*.*)", "*.*") ]); } private function fileSelectHandler(event: Event): void { for each (var f: FileReference in fileRefs.fileList) { selectedFiles.addItem(f); } } private function uploadFile(): void { for each (var f: FileReference in selectedFiles) { try { f.upload(urlrequest); } catch (e: Error) { Alert.show(e.message); } } } private function singleThreadUploadFile(): void { //FIFO:逐个从列表中取出,进行同步上传 if (singleThreadFiles.length > 0) { var f: FileReference = singleThreadFiles.pop() as FileReference; f.addEventListener(Event.COMPLETE, doSingleUploadFileComplete); f.upload(urlrequest); } } private function doSingleUploadFileComplete(event: Event): void { var f: FileReference = event.target as FileReference; f.removeEventListener(Event.COMPLETE, doSingleUploadFileComplete); singleThreadUploadFile(); } private function ioErrorHandler(e:IOErrorEvent): void { Alert.show(e.text); } private function completeHandler(e: Event): void { img.source = e.target.data; } private function showImage(e: Event): void { var f: FileReference = (e.target as DataGrid).selectedItem as FileReference; f.addEventListener(Event.COMPLETE, completeHandler); f.load(); } public function removeFile(f: FileReference): void { var index: int = selectedFiles.getItemIndex(f); if (index != -1) selectedFiles.removeItemAt(index); } ]]> </mx:Script> <mx:VBox> <mx:HBox width="100%"> <mx:Button id="selectFileButton" label="浏览" click="selectFile()"/> <mx:Box width="100%" horizontalAlign="right"> <mx:Button click="selectedFiles.removeAll();" label="清空"/> </mx:Box> </mx:HBox> <mx:DataGrid id="files" dataProvider="{selectedFiles}" change="showImage(event)"> <mx:columns> <mx:DataGridColumn width="150" headerText="文件名" dataField="name" /> <mx:DataGridColumn headerText="大小(字节)" dataField="size"> <mx:itemRenderer> <mx:Component> <mx:Label text="{outerDocument.filesizeFormatter.format(data.size)}" textAlign="right"/> </mx:Component> </mx:itemRenderer> </mx:DataGridColumn> <mx:DataGridColumn headerText="上传进度" width="300"> <mx:itemRenderer> <mx:Component> <mx:HBox fontSize="10" fontWeight="normal" fontThickness="1"> <mx:Script> <![CDATA[ import flash.profiler.showRedrawRegions; import mx.controls.Alert; import mx.controls.ProgressBar; private function initProgressBar(event: Event): void { //使progressbar与file关联,从而产生进度条 var pb: ProgressBar = event.target as ProgressBar; pb.label = "%3%%"; pb.setProgress(0, 100); var f: FileReference = data as FileReference; //使用闭包方法,更新进度条 f.addEventListener(ProgressEvent.PROGRESS, function(event: ProgressEvent): void { pb.setProgress(event.bytesLoaded, event.bytesTotal); } ); f.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA, function (event: DataEvent): void { //服务器端一定要返回数据,否则,这个方法就不起作用了 pb.label = event.data; } ); } ]]> </mx:Script> <mx:ProgressBar verticalCenter="true" width="100%" paddingLeft="5" paddingRight="5" maximum="100" minimum="0" labelPlacement="center" mode="manual" label="%3%%" textAlign="left" creationComplete="initProgressBar(event)"/> <mx:LinkButton label="Cancel"> <mx:click> <![CDATA[ var f: FileReference = data as FileReference; f.cancel(); ]]> </mx:click> </mx:LinkButton> <mx:LinkButton label="Delete"> <mx:click> <![CDATA[ var f: FileReference = data as FileReference; outerDocument.removeFile(f); ]]> </mx:click> </mx:LinkButton> </mx:HBox> </mx:Component> </mx:itemRenderer> </mx:DataGridColumn> </mx:columns> </mx:DataGrid> </mx:VBox> <mx:HBox> <mx:Button label="上传"> <mx:click> <![CDATA[ if (useSingleThread) { //逐个上传 singleThreadFiles = selectedFiles.toArray().concat(); singleThreadFiles.reverse(); singleThreadUploadFile(); } else { //多个文件同时上传 uploadFile(); } ]]> </mx:click> </mx:Button> <mx:CheckBox id="checkboxSingleThread" label="同时上传多个文件" selected="{!useSingleThread}" change="useSingleThread = !checkboxSingleThread.selected"/> </mx:HBox> <mx:Image id="img" width="400" height="300"/> </mx:Application> 用在JAVA服务器端的是 import java.io.File; import java.io.IOException; import java.util.Iterator; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileUploadException; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; public class UploadFile extends HttpServlet { private static final long serialVersionUID = 5425836142860976977L; /** *//** * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods. * @param request servlet request * @param response servlet response */ // 定义文件的上传路径 private String uploadPath = "d:\\files\\"; // 限制文件的上传大小 private int maxPostSize = 100 * 1024 * 1024; //最大100M public UploadFile() { super(); } public void destroy() { super.destroy(); } protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("Access !"); response.setContentType("text/html;charset=UTF-8"); //保存文件到服务器中 DiskFileItemFactory factory = new DiskFileItemFactory(); factory.setSizeThreshold(4096); ServletFileUpload upload = new ServletFileUpload(factory); upload.setHeaderEncoding("utf-8"); upload.setSizeMax(maxPostSize); try { List fileItems = upload.parseRequest(request); Iterator iter = fileItems.iterator(); while (iter.hasNext()) { FileItem item = (FileItem) iter.next(); if (!item.isFormField()) { String name = item.getName(); System.out.println(name); try { item.write(new File(uploadPath + name)); response.getWriter().write("上传成功。"); } catch (Exception e) { e.printStackTrace(); response.getWriter().write(e.getMessage()); } } } } catch (FileUploadException e) { e.printStackTrace(); response.getWriter().write(e.getMessage()); System.out.println(e.getMessage() + "结束"); } } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } /** *//** * Handles the HTTP <code>POST</code> method. * @param request servlet request * @param response servlet response */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } /** *//** * Returns a short description of the servlet. */ public String getServletInfo() { return "Short description"; } }
请教一下,我这个导航栏怎么增加每个导航按钮之间的间距呢?
<!DOCTYPE html> <html> <head> <link rel="icon" href="images/favicon.ico" type="img/x-ico" /> <title>山东金泽网络科技有限公司</title> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta charset="utf-8"> <meta name="keywords" content="" /> <script type="application/x-javascript"> addEventListener("load", function () { setTimeout(hideURLbar, 0); }, false); function hideURLbar() { window.scrollTo(0, 1); } </script> <link href="css/bootstrap.css" rel='stylesheet' type='text/css' /> <link rel="stylesheet" href="css/flexslider.css" type="text/css" media="screen" property="" /> <link href="css/style.css" rel='stylesheet' type='text/css' /> <link href="css/simpleLightbox.css" rel='stylesheet' type='text/css' /> <link href="css/fontawesome-all.css" rel="stylesheet"> <link href="http://fonts.googleapis.com/css?family=Poppins:100i,200,200i,300,400,400i,500,500i,600,600i,700,700i,800" rel="stylesheet"> </head> <body> <header> <div class="header_top" id="home"> <nav class="navbar navbar-toggleable-md navbar-light bg-faded"> <a class="navbar-brand" href="index.html"> <i class="fab fa-digital-ocean"></i> 金泽科技</a> <button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbarSupportedContent"> <ul class="navbar-nav mx-auto tp-nav text-center"> <li class="nav-item active"> <a class="nav-link" href="index.html">首页 <span class="sr-only">(current)</span> </a> </li> <li class="nav-item"> <a class="nav-link" href="about.html">关于</a> </li> <li class="nav-item"> <a class="nav-link" href="了解银豹.html">解决方案</a> </li> <li class="nav-item"> <a class="nav-link" href="blog.html">博客</a> </li> <li class="nav-item"> <a class="nav-link" href="contact.html">联系我们</a> </li> </ul> <form action="#" method="post" class="form-inline my-2 my-lg-0 search"> <input class="form-control mr-sm-2" type="search" placeholder="点击输入搜索..." name="Search" required> <button class="btn btn-outline-success my-2 my-sm-0" type="submit">搜索</button> </form> </div> </nav> </div> </header> <!--//header--> </body> </html> ``` ```
怎么把网页1的导航完美移植到网页2的轮播图上边的位置使导航和轮播图结合成一个网页
网页1带导航的 <!DOCTYPE html> <html> <head> <link rel="icon" href="images/favicon.ico" type="img/x-ico" /> <title>山东金泽网络科技有限公司</title> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta charset="utf-8"> <meta name="keywords" content="" /> <script type="application/x-javascript"> addEventListener("load", function () { setTimeout(hideURLbar, 0); }, false); function hideURLbar() { window.scrollTo(0, 1); } </script> <link href="css/bootstrap.css" rel='stylesheet' type='text/css' /> <link rel="stylesheet" href="css/flexslider.css" type="text/css" media="screen" property="" /> <link href="css/style.css" rel='stylesheet' type='text/css' /> <link href="css/simpleLightbox.css" rel='stylesheet' type='text/css' /> <link href="css/fontawesome-all.css" rel="stylesheet"> <link href="http://fonts.googleapis.com/css?family=Poppins:100i,200,200i,300,400,400i,500,500i,600,600i,700,700i,800" rel="stylesheet"> </head> <body> <header> <div class="header_top" id="home"> <nav class="navbar navbar-toggleable-md navbar-light bg-faded"> <a class="navbar-brand" href="index.html"> <i class="fab fa-digital-ocean"></i> 金泽科技</a> <button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbarSupportedContent"> <ul class="navbar-nav mx-auto tp-nav text-center"> <li class="nav-item active"> <a class="nav-link" href="index.html">首页 <span class="sr-only">(current)</span> </a> </li> <li class="nav-item"> <a class="nav-link" href="about.html">关于</a> </li> <li class="nav-item"> <a class="nav-link" href="了解银豹.html">解决方案</a> </li> <li class="nav-item"> <a class="nav-link" href="blog.html">博客</a> </li> <li class="nav-item"> <a class="nav-link" href="contact.html">联系我们</a> </li> </ul> <form action="#" method="post" class="form-inline my-2 my-lg-0 search"> <input class="form-control mr-sm-2" type="search" placeholder="点击输入搜索..." name="Search" required> <button class="btn btn-outline-success my-2 my-sm-0" type="submit">搜索</button> </form> </div> </nav> </div> </header> <!--//header--> </body> </html> ``` 网页2 轮播图代码: ``` <!DOCTYPE html> <html> <head> <link rel="icon" href="images/favicon.ico" type="img/x-ico" /> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <title>山东金泽网络科技有限公司</title> <link rel="stylesheet" href="css/style.css" /> </head> <body> <div class="c-banner"> <div class="banner"> <ul> <li><img src="img/lunbo1.jpg"></li> <li><img src="img/lunbo2.jpg"></li> <li><img src="img/lunbo3.jpg"></li> </ul> </div> <div class="nexImg"> <img src="img/nexImg.png" /> </div> <div class="preImg"> <img src="img/preImg.png" /> </div> <div class="jumpBtn"> <ul> <li jumpImg="0"></li> <li jumpImg="1"></li> <li jumpImg="2"></li> </ul> </div> </div> <script type="text/javascript" src="js/jquery.min.js"></script> <script type="text/javascript"> //定时器返回值 var time=null; //记录当前位子 var nexImg = 0; //用于获取轮播图图片个数 var imgLength = $(".c-banner .banner ul li").length; //当时动态数据的时候使用,上面那个删除 // var imgLength =0; //设置底部第一个按钮样式 $(".c-banner .jumpBtn ul li[jumpImg="+nexImg+"]").css("background-color","black"); //页面加载 $(document).ready(function(){ // dynamicData(); //启动定时器,设置时间为3秒一次 time =setInterval(intervalImg,3000); }); //点击上一张 $(".preImg").click(function(){ //清楚定时器 clearInterval(time); var nowImg = nexImg; nexImg = nexImg-1; console.log(nexImg); if(nexImg<0){ nexImg=imgLength-1; } //底部按钮样式设置 $(".c-banner .jumpBtn ul li").css("background-color","white"); $(".c-banner .jumpBtn ul li[jumpImg="+nexImg+"]").css("background-color","black"); //将当前图片试用绝对定位,下一张图片试用相对定位 $(".c-banner .banner ul img").eq(nowImg).css("position","absolute"); $(".c-banner .banner ul img").eq(nexImg).css("position","relative"); //轮播淡入淡出 $(".c-banner .banner ul li").eq(nexImg).css("display","block"); $(".c-banner .banner ul li").eq(nexImg).stop().animate({"opacity":1},1000); $(".c-banner .banner ul li").eq(nowImg).stop().animate({"opacity":0},1000,function(){ $(".c-banner ul li").eq(nowImg).css("display","none"); }); //启动定时器,设置时间为3秒一次 time =setInterval(intervalImg,3000); }) //点击下一张 $(".nexImg").click(function(){ clearInterval(time); intervalImg(); time =setInterval(intervalImg,3000); }) //轮播图 function intervalImg(){ if(nexImg<imgLength-1){ nexImg++; }else{ nexImg=0; } //将当前图片试用绝对定位,下一张图片试用相对定位 $(".c-banner .banner ul img").eq(nexImg-1).css("position","absolute"); $(".c-banner .banner ul img").eq(nexImg).css("position","relative"); $(".c-banner .banner ul li").eq(nexImg).css("display","block"); $(".c-banner .banner ul li").eq(nexImg).stop().animate({"opacity":1},1000); $(".c-banner .banner ul li").eq(nexImg-1).stop().animate({"opacity":0},1000,function(){ $(".c-banner .banner ul li").eq(nexImg-1).css("display","none"); }); $(".c-banner .jumpBtn ul li").css("background-color","white"); $(".c-banner .jumpBtn ul li[jumpImg="+nexImg+"]").css("background-color","black"); } //轮播图底下按钮 //动态数据加载的试用应放在请求成功后执行该代码,否则按钮无法使用 $(".c-banner .jumpBtn ul li").each(function(){ //为每个按钮定义点击事件 $(this).click(function(){ clearInterval(time); $(".c-banner .jumpBtn ul li").css("background-color","white"); jumpImg = $(this).attr("jumpImg"); if(jumpImg!=nexImg){ var after =$(".c-banner .banner ul li").eq(jumpImg); var befor =$(".c-banner .banner ul li").eq(nexImg); //将当前图片试用绝对定位,下一张图片试用相对定位 $(".c-banner .banner ul img").eq(nexImg).css("position","absolute"); $(".c-banner .banner ul img").eq(jumpImg).css("position","relative"); after.css("display","block"); after.stop().animate({"opacity":1},1000); befor.stop().animate({"opacity":0},1000,function(){ befor.css("display","none"); }); nexImg=jumpImg; } $(this).css("background-color","black"); time =setInterval(intervalImg,3000); }); }); //动态数据轮播图 //动态数据加载的时候不要直接点击demo.html运行否则可能请求不到本地json数据 // function dynamicData(){ // $.ajax({ // url:"js/test.json", // type:"get", // dataType:"json", // success:function(data){ // if(data.code==1){ // var data = data.data; // $.each(data,function(i){ // $(".c-banner .banner ul").append('<li><img src="'+this.img+'"></li>'); // $(".c-banner .jumpBtn ul").append('<li jumpImg="'+i+'"></li>') // }) // } // //获取图片总数量 // imgLength = $(".c-banner .banner ul li").length; // //为底部按钮定义单击事件 // $(".c-banner .jumpBtn ul li").each(function(){ // //为每个按钮定义点击事件 // $(this).click(function(){ // clearInterval(time); // $(".c-banner .jumpBtn ul li").css("background-color","white"); // jumpImg = $(this).attr("jumpImg"); // if(jumpImg!=nexImg){ // var after =$(".c-banner .banner ul li").eq(jumpImg); // var befor =$(".c-banner .banner ul li").eq(nexImg); // // //将当前图片试用绝对定位,下一张图片试用相对定位 // $(".c-banner .banner ul img").eq(nexImg).css("position","absolute"); // $(".c-banner .banner ul img").eq(jumpImg).css("position","relative"); // // after.css("display","block"); // after.stop().animate({"opacity":1},1000); // befor.stop().animate({"opacity":0},1000,function(){ // befor.css("display","none"); // }); // nexImg=jumpImg; // } // $(this).css("background-color","black"); // time =setInterval(intervalImg,3000); // }); // }); // } // }) // } </script> <div style="text-align:center;margin:10px 0; font:normal 14px/24px 'MicroSoft YaHei';"> </div> </body> </html> ``` ```
为什么我这里的e.pageX - login.offsetLeft是负值
## 问题我直接上图了 --- > > ![图片说明](https://img-ask.csdn.net/upload/201912/14/1576255129_927733.png) > # **按照逻辑来说,应该是正的值才对** ## 代码是这样写的,应该没什么问题 ``` title.addEventListener('mousedown', function(e) { var x = e.pageX - login.offsetLeft var y = e.pageY - login.offsetTop console.log('e.pageX的坐标是' + e.pageX); console.log('login.offsetLeft的坐标是' + login.offsetLeft); console.log('鼠标在盒子内部的坐标是:' + x); }) ```
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小人工智障。 思路可以运用在不同地方,主要介绍的是思路。
Linux(服务器编程):15---两种高效的事件处理模式(reactor模式、proactor模式)
前言 同步I/O模型通常用于实现Reactor模式 异步I/O模型则用于实现Proactor模式 最后我们会使用同步I/O方式模拟出Proactor模式 一、Reactor模式 Reactor模式特点 它要求主线程(I/O处理单元)只负责监听文件描述符上是否有事件发生,有的话就立即将时间通知工作线程(逻辑单元)。除此之外,主线程不做任何其他实质性的工作 读写数据,接受新的连接,以及处...
为什么要学数据结构?
一、前言 在可视化化程序设计的今天,借助于集成开发环境可以很快地生成程序,程序设计不再是计算机专业人员的专利。很多人认为,只要掌握几种开发工具就可以成为编程高手,其实,这是一种误解。要想成为一个专业的开发人员,至少需要以下三个条件: 1) 能够熟练地选择和设计各种数据结构和算法 2) 至少要能够熟练地掌握一门程序设计语言 3) 熟知所涉及的相关应用领域的知识 其中,后两个条件比较容易实现,而第一个...
C语言魔塔游戏
很早就很想写这个,今天终于写完了。 游戏截图: 编译环境: VS2017 游戏需要一些图片,如果有想要的或者对游戏有什么看法的可以加我的QQ 2985486630 讨论,如果暂时没有回应,可以在博客下方留言,到时候我会看到。 下面我来介绍一下游戏的主要功能和实现方式 首先是玩家的定义,使用结构体,这个名字是可以自己改变的 struct gamerole { char n
进程通信方式总结与盘点
​ 进程通信是指进程之间的信息交换。这里需要和进程同步做一下区分,进程同步控制多个进程按一定顺序执行,进程通信是一种手段,而进程同步是目标。从某方面来讲,进程通信可以解决进程同步问题。 ​ 首先回顾下我们前面博文中讲到的信号量机制,为了实现进程的互斥与同步,需要在进程间交换一定的信息,因此信号量机制也可以被归为进程通信的一种方式,但是也被称为低级进程通信,主要原因为: 效率低:一次只可操作少量的...
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观
听说了吗?阿里双11作战室竟1根网线都没有
双11不光是购物狂欢节,更是对技术的一次“大考”,对于阿里巴巴企业内部运营的基础保障技术而言,亦是如此。 回溯双11历史,这背后也经历过“小米加步枪”的阶段:作战室从随处是网线,交换机放地上的“一地狼藉”;到如今媲美5G的wifi网速,到现场却看不到一根网线;从当年使用商用AP(无线路由器),让光明顶双11当天断网一分钟,到全部使用阿里自研AP……阿里巴巴企业智能事业部工程师们提供的基础保障...
在阿里,40岁的奋斗姿势
在阿里,40岁的奋斗姿势 在阿里,什么样的年纪可以称为老呢?35岁? 在云网络,有这样一群人,他们的平均年龄接近40,却刚刚开辟职业生涯的第二战场。 他们的奋斗姿势是什么样的呢? 洛神赋 “翩若惊鸿,婉若游龙。荣曜秋菊,华茂春松。髣髴兮若轻云之蔽月,飘飖兮若流风之回雪。远而望之,皎若太阳升朝霞;迫而察之,灼若芙蕖出渌波。” 爱洛神,爱阿里云 2018年,阿里云网络产品部门启动洛神2.0升...
关于研发效能提升的思考
研发效能提升是最近比较热门的一个话题,本人根据这几年的工作心得,做了一些思考总结,由于个人深度有限,暂且抛转引入。 三要素 任何生产力的提升都离不开这三个因素:人、流程和工具,少了其中任何一个因素都无法实现。 人,即思想,也就是古人说的“道”,道不同不相为谋,是制高点,也是高层建筑的基石。 流程,即方法,也是古人说的“法”。研发效能的提升,也就是要提高投入产出比,既要增加产出,也要减...
Python爬虫爬取淘宝,京东商品信息
小编是一个理科生,不善长说一些废话。简单介绍下原理然后直接上代码。 使用的工具(Python+pycharm2019.3+selenium+xpath+chromedriver)其中要使用pycharm也可以私聊我selenium是一个框架可以通过pip下载 pip install selenium -i https://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
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆  每天早上8:30推送 作者| Mr.K   编辑| Emma 来源| 技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯
程序员该看的几部电影
##1、骇客帝国(1999) 概念:在线/离线,递归,循环,矩阵等 剧情简介: 不久的将来,网络黑客尼奥对这个看似正常的现实世界产生了怀疑。 他结识了黑客崔妮蒂,并见到了黑客组织的首领墨菲斯。 墨菲斯告诉他,现实世界其实是由一个名叫“母体”的计算机人工智能系统控制,人们就像他们饲养的动物,没有自由和思想,而尼奥就是能够拯救人类的救世主。 可是,救赎之路从来都不会一帆风顺,到底哪里才是真实的世界?
入职阿里5年,他如何破解“技术债”?
简介: 作者 | 都铎 作为一名技术人,你常常会听到这样的话: “先快速上线” “没时间改” “再缓一缓吧” “以后再解决” “先用临时方案处理” …… 当你埋下的坑越来越多,不知道哪天哪位同学就会踩上一颗雷。特别赞同“人最大的恐惧就是未知,当技术债可说不可见的时候,才是最让人不想解决的时候。” 作为一个程序员,我们反对复制粘贴,但是我们经常会见到相似的代码,相同的二方包,甚至整个代码...
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分析我国存在哪些人口危机!
2020年1月17日,国家统计局发布了2019年国民经济报告,报告中指出我国人口突破14亿。 猪哥的朋友圈被14亿人口刷屏,但是很多人并没有看到我国复杂的人口问题:老龄化、男女比例失衡、生育率下降、人口红利下降等。 今天我们就来分析一下我们国家的人口数据吧! 一、背景 1.人口突破14亿 2020年1月17日,国家统计局发布了 2019年国民经济报告 ,报告中指出:年末中国大陆总人口(包括31个
在家远程办公效率低?那你一定要收好这个「在家办公」神器!
相信大家都已经收到国务院延长春节假期的消息,接下来,在家远程办公可能将会持续一段时间。 但是问题来了。远程办公不是人在电脑前就当坐班了,相反,对于沟通效率,文件协作,以及信息安全都有着极高的要求。有着非常多的挑战,比如: 1在异地互相不见面的会议上,如何提高沟通效率? 2文件之间的来往反馈如何做到及时性?如何保证信息安全? 3如何规划安排每天工作,以及如何进行成果验收? ......
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!
2020年的1月,我辞掉了我的第一份工作
其实,这篇文章,我应该早点写的,毕竟现在已经2月份了。不过一些其它原因,或者是我的惰性、还有一些迷茫的念头,让自己迟迟没有试着写一点东西,记录下,或者说是总结下自己前3年的工作上的经历、学习的过程。 我自己知道的,在写自己的博客方面,我的文笔很一般,非技术类的文章不想去写;另外我又是一个还比较热衷于技术的人,而平常复杂一点的东西,如果想写文章写的清楚点,是需要足够...
别低估自己的直觉,也别高估自己的智商
所有群全部吵翻天,朋友圈全部沦陷,公众号疯狂转发。这两周没怎么发原创,只发新闻,可能有人注意到了。我不是懒,是文章写了却没发,因为大家的关注力始终在这次的疫情上面,发了也没人看。当然,我...
Java坑人面试题系列: 包装类(中级难度)
Java Magazine上面有一个专门坑人的面试题系列: https://blogs.oracle.com/javamagazine/quiz-2。 这些问题的设计宗旨,主要是测试面试者对Java语言的了解程度,而不是为了用弯弯绕绕的手段把面试者搞蒙。 如果你看过往期的问题,就会发现每一个都不简单。 这些试题模拟了认证考试中的一些难题。 而 “中级(intermediate)” 和 “高级(ad
深度学习入门笔记(十八):卷积神经网络(一)
欢迎关注WX公众号:【程序员管小亮】 专栏——深度学习入门笔记 声明 1)该文章整理自网上的大牛和机器学习专家无私奉献的资料,具体引用的资料请看参考文献。 2)本文仅供学术交流,非商用。所以每一部分具体的参考资料并没有详细对应。如果某部分不小心侵犯了大家的利益,还望海涵,并联系博主删除。 3)博主才疏学浅,文中如有不当之处,请各位指出,共同进步,谢谢。 4)此属于第一版本,若有错误,还需继续修正与...
这个世界上人真的分三六九等,你信吗?
偶然间,在知乎上看到一个问题 一时间,勾起了我深深的回忆。 以前在厂里打过两次工,做过家教,干过辅导班,做过中介。零下几度的晚上,贴过广告,满脸、满手地长冻疮。 再回首那段岁月,虽然苦,但让我学会了坚持和忍耐。让我明白了,在这个世界上,无论环境多么的恶劣,只要心存希望,星星之火,亦可燎原。 下文是原回答,希望能对你能有所启发。 如果我说,这个世界上人真的分三六九等,...
节后首个工作日,企业们集体开晨会让钉钉挂了
By 超神经场景描述:昨天 2 月 3 日,是大部分城市号召远程工作的第一天,全国有接近 2 亿人在家开始远程办公,钉钉上也有超过 1000 万家企业活跃起来。关键词:十一出行 人脸...
Java基础知识点梳理
Java基础知识点梳理 摘要: 虽然已经在实际工作中经常与java打交道,但是一直没系统地对java这门语言进行梳理和总结,掌握的知识也比较零散。恰好利用这段时间重新认识下java,并对一些常见的语法和知识点做个总结与回顾,一方面为了加深印象,方便后面查阅,一方面为了学好java打下基础。 Java简介 java语言于1995年正式推出,最开始被命名为Oak语言,由James Gosling(詹姆
2020年全新Java学习路线图,含配套视频,学完即为中级Java程序员!!
新的一年来临,突如其来的疫情打破了平静的生活! 在家的你是否很无聊,如果无聊就来学习吧! 世上只有一种投资只赚不赔,那就是学习!!! 传智播客于2020年升级了Java学习线路图,硬核升级,免费放送! 学完你就是中级程序员,能更快一步找到工作! 一、Java基础 JavaSE基础是Java中级程序员的起点,是帮助你从小白到懂得编程的必经之路。 在Java基础板块中有6个子模块的学
B 站上有哪些很好的学习资源?
哇说起B站,在小九眼里就是宝藏般的存在,放年假宅在家时一天刷6、7个小时不在话下,更别提今年的跨年晚会,我简直是跪着看完的!! 最早大家聚在在B站是为了追番,再后来我在上面刷欧美新歌和漂亮小姐姐的舞蹈视频,最近两年我和周围的朋友们已经把B站当作学习教室了,而且学习成本还免费,真是个励志的好平台ヽ(.◕ฺˇд ˇ◕ฺ;)ノ 下面我们就来盘点一下B站上优质的学习资源: 综合类 Oeasy: 综合
你也能看懂的:蒙特卡罗方法
蒙特卡罗方法,也称统计模拟方法,是1940年代中期由于科学技术的发展和电子计算机的发明,而提出的一种以概率统计理论为指导的数值计算方法。是指使用随机数(或更常见的伪随机数)来解决很多计算问题的方法 蒙特卡罗方法可以粗略地分成两类:一类是所求解的问题本身具有内在的随机性,借助计算机的运算能力可以直接模拟这种随机的过程。另一种类型是所求解问题可以转化为某种随机分布的特征数,比如随机事件出现的概率,或...
相关热词 c#开发的dll注册 c#的反射 c# grid绑定数据源 c#多线程怎么循环 c# 鼠标左键 c# char占位符 c# 日期比较 c#16进制转换为int c#用递归求顺序表中最大 c#小型erp源代码
立即提问