亚洲色成人网站www永久,亚洲欧美人成视频一区在线,亚洲国产成人高清在线观看,亚洲精品久久久久久动漫,亚洲国产精品久久电影欧美

數(shù)據(jù)專欄

智能大數(shù)據(jù)搬運(yùn)工,你想要的我們都有

科技資訊

科技學(xué)院

科技百科

科技書(shū)籍

網(wǎng)站大全

軟件大全

HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 碰到個(gè)問(wèn)題,搞了一天了,還是沒(méi)解決,只好問(wèn)下大家了。 我在這么個(gè)功能,動(dòng)態(tài)創(chuàng)建定時(shí)任務(wù),只要寫(xiě)業(yè)務(wù)類和數(shù)據(jù)庫(kù)插入一條數(shù)據(jù)即可?;竟δ芤呀?jīng)完成,但代碼發(fā)現(xiàn)一個(gè)問(wèn)題,以前會(huì)在xml中寫(xiě)一個(gè)配置 :使用 MethodInvokingJobDetailFactoryBean 生成job,只需要配置屬性 concurrent=flase 即可保證線程中的任務(wù)執(zhí)行完畢,才會(huì)創(chuàng)建新的線程 。 但現(xiàn)在這種動(dòng)態(tài)創(chuàng)建的方式,我就無(wú)法注入這個(gè)參數(shù)了,可能是我沒(méi)找到,或者姿勢(shì)錯(cuò)誤。 個(gè)人嘗試過(guò)的解決方案: 1 加入 @DisallowConcurrentExecution 注解,無(wú)效果,應(yīng)該和我這種寫(xiě)法有關(guān)系 2 在運(yùn)行的時(shí)候找到全部的任務(wù),然后遍歷任務(wù)ID,如果發(fā)現(xiàn)該任務(wù)已經(jīng)在執(zhí)行,則忽略執(zhí)行。這種方式也不行,返回的都是正常狀態(tài) 3 將任務(wù)id當(dāng)做線程名字,遍歷全部線程,發(fā)現(xiàn)線程存在則忽略。也有問(wèn)題,首先用了線程池之后不能隨便設(shè)置名字 4.。。。。。。其他方案 下面是核心代碼,大家?guī)兔聪?,怎么才能?比如任務(wù)A, 我不確定他執(zhí)行的快慢,可能是3秒,可能30秒,也可能40秒,這個(gè)任務(wù)是每20秒執(zhí)行一次,如果任務(wù)A還沒(méi)執(zhí)行完,不會(huì)繼續(xù)執(zhí)行,等執(zhí)行完后,才會(huì)繼續(xù)。 任務(wù)類: 創(chuàng)建定時(shí)任務(wù): 執(zhí)行定時(shí)任務(wù)的類: @Component public class ScheduleJobService extends QuartzJobBean { @Resource private ScheduleJobLogDao scheduleJobLogDao; private static Logger log = LoggerFactory.getLogger(ScheduleJobService.class); /** * 創(chuàng)建一個(gè)單線程化的線程池,它只會(huì)用唯一的工作線程來(lái)執(zhí)行任務(wù),保證所有任務(wù)按照指定順序(FIFO, LIFO, 優(yōu)先級(jí))執(zhí)行。 */ private ExecutorService service = Executors.newSingleThreadExecutor(); /** * 執(zhí)行定時(shí)任務(wù) * @param context */ @Override protected void executeInternal(JobExecutionContext context) { ScheduleJob scheduleJob = (ScheduleJob)context.getMergedJobDataMap().get(Constant.JOB_PARAM_KEY); //數(shù)據(jù)庫(kù)保存執(zhí)行記錄 ScheduleJobLog scheduleJobLog = new ScheduleJobLog(); scheduleJobLog.setId(CommonTool.getUUId()); scheduleJobLog.setJobId(scheduleJob.getId()); scheduleJobLog.setBeanName(scheduleJob.getBeanName()); scheduleJobLog.setMethodName(scheduleJob.getMethodName()); scheduleJobLog.setParams(scheduleJob.getParams()); scheduleJobLog.setCreateTime(CommonTool.getTimestamp()); //任務(wù)開(kāi)始時(shí)間 long startTime = System.currentTimeMillis(); try { log.info("任務(wù)準(zhǔn)備執(zhí)行,任務(wù)ID:" + scheduleJob.getId() + scheduleJob.getBeanName()); //調(diào)用線程 ScheduleRunnable task = new ScheduleRunnable(scheduleJob.getBeanName(), scheduleJob.getMethodName(), scheduleJob.getParams()); //設(shè)置線程名 task.setName(scheduleJob.getId()); //Future就是對(duì)于具體的Runnable或者Callable任務(wù)的執(zhí)行結(jié)果進(jìn)行取消、查詢是否完成、獲取結(jié)果。必要時(shí)可以通過(guò)get方法獲取執(zhí)行結(jié)果,該方法會(huì)阻塞直到任務(wù)返回結(jié)果。 Future future = service.submit(task); future.get(); //任務(wù)執(zhí)行總時(shí)長(zhǎng) long times = System.currentTimeMillis() - startTime; scheduleJobLog.setTimes((int) times); scheduleJobLog.setStatus(Constant.TASK_SUCCESS); log.info("任務(wù)執(zhí)行完畢,任務(wù)ID:" + scheduleJob.getId() + " 總共耗時(shí):" + times + "毫秒"); } catch (Exception e){ log.error("任務(wù)執(zhí)行失敗,任務(wù)ID:" + scheduleJob.getId(), e); //任務(wù)執(zhí)行總時(shí)長(zhǎng) long times = System.currentTimeMillis() - startTime; scheduleJobLog.setTimes((int)times); scheduleJobLog.setStatus(Constant.TASK_FAIL); scheduleJobLog.setError(e.toString()); } finally { scheduleJobLogDao.insert(scheduleJobLog); } } } 上面的 ScheduleRunnable public class ScheduleRunnable extends Thread{ /** * bean 名 */ private Object target; /** * 方法名 */ private Method method; /** * 參數(shù) */ private String params; /** * 構(gòu)造函數(shù) * @param beanName bean的名字 * @param methodName 方法名 * @param params 參數(shù) */ public ScheduleRunnable(String beanName, String methodName, String params) throws NoSuchMethodException { this.target = SpringContextTool.getBean(beanName); this.params = params; if (CheckTool.checkNull(params)){ this.method = target.getClass().getDeclaredMethod(methodName); } else { this.method = target.getClass().getDeclaredMethod(methodName, String.class); } } @Override public void run() { try { ReflectionUtils.makeAccessible(method); if (CheckTool.checkNull(params)){ method.invoke(target); } else { method.invoke(target, params); } } catch (Exception e) { throw new ServiceException("執(zhí)行定時(shí)任務(wù)失敗!" + e); } } }
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2019-10-10 23:04:00
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> Exception in thread "Quartz Scheduler [fbidp_schedulerTarget]" org.springframework.scheduling.SchedulingException: Could not start Quartz Scheduler after delay; nested exception is org.quartz.SchedulerException: The Scheduler cannot be restarted after shutdown() has been called. at org.springframework.scheduling.quartz.SchedulerFactoryBean$1.run(SchedulerFactoryBean.java:671) Caused by: org.quartz.SchedulerException: The Scheduler cannot be restarted after shutdown() has been called. at org.quartz.core.QuartzScheduler.start(QuartzScheduler.java:557) at org.quartz.impl.StdScheduler.start(StdScheduler.java:142) at org.springframework.scheduling.quartz.SchedulerFactoryBean$1.run(SchedulerFactoryBean.java:668)
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2019-08-23 12:07:00
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 需求: 每周一到周五,上午9:30--12,下午13--16點(diǎn),每隔10秒觸發(fā)一次 quartz支持這樣的需求嗎? 我查閱了很多網(wǎng)上的資料,具體到小時(shí)分鐘的,沒(méi)有找到觸發(fā)時(shí)間以秒計(jì)的
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2015-11-06 10:31:00
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 如題 @許雪里 xxl-job只能是一個(gè)類執(zhí)行一個(gè)任務(wù)嗎,可不可以一個(gè)類里執(zhí)行多個(gè)任務(wù)?原來(lái)用quartz時(shí)的代碼,一個(gè)類里放了很多任務(wù),現(xiàn)在接入xxl-job時(shí)只能手動(dòng)把那些任務(wù)拆出來(lái)嗎?
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2019-06-26 17:24:00
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> Support for specifying both a day-of-week AND a day-of-month parameter is not implemented. google翻譯下,不支持指定參數(shù) ; 這是網(wǎng)上對(duì)于這個(gè)地方的理解? 看不太懂2)?:只能用在DayofMonth和DayofWeek兩個(gè)域。它也匹配域的任意值,但實(shí)際不會(huì)。因?yàn)镈ayofMonth和DayofWeek會(huì)相互影響。例如想在每月的20日觸發(fā)調(diào)度,不管20日到底是星期幾,則只能使用如下寫(xiě)法: 13 13 15 20 * ?, 其中最后一位只能用?,而不能使用*,如果使用*表示不管星期幾都會(huì)觸發(fā),實(shí)際上并不是這樣; 如果我就是想讓它周日到周一都觸發(fā)呢?
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2019-06-25 18:58:00
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 2019-05-31 10:19:04.278 INFO 2832 --- [ restartedMain] org.quartz.core.QuartzScheduler : Scheduler RASScheduler_$_20160101-0008041559269139417 shutting down. 2019-05-31 10:19:04.278 INFO 2832 --- [ restartedMain] org.quartz.core.QuartzScheduler : Scheduler RASScheduler_$_20160101-0008041559269139417 paused. 2019-05-31 10:19:04.278 INFO 2832 --- [ restartedMain] org.quartz.core.QuartzScheduler : Scheduler RASScheduler_$_20160101-0008041559269139417 shutdown complete. 2019-05-31 10:19:04.291 INFO 2832 --- [ restartedMain] com.alibaba.druid.pool.DruidDataSource : {dataSource-1} closed 2019-05-31 10:19:05.185 INFO 2832 --- [ [RASScheduler]] o.s.s.quartz.SchedulerFactoryBean : Starting Quartz Scheduler now, after delay of 1 seconds Exception in thread "Quartz Scheduler [RASScheduler]" org.springframework.scheduling.SchedulingException: Could not start Quartz Scheduler after delay; nested exception is org.quartz.SchedulerException: The Scheduler cannot be restarted after shutdown() has been called. at org.springframework.scheduling.quartz.SchedulerFactoryBean$1.run(SchedulerFactoryBean.java:727) Caused by: org.quartz.SchedulerException: The Scheduler cannot be restarted after shutdown() has been called. at org.quartz.core.QuartzScheduler.start(QuartzScheduler.java:529) at org.quartz.impl.StdScheduler.start(StdScheduler.java:142) at org.springframework.scheduling.quartz.SchedulerFactoryBean$1.run(SchedulerFactoryBean.java:724)
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2019-05-31 10:21:00
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> Freed 0 triggers from 'acquired' / 'blocked' state. 2019-05-22 14:59:00.548 INFO 11624 --- [ [RASScheduler]] o.s.s.quartz.LocalDataSourceJobStore : Recovering 0 jobs that were in-progress at the time of the last shut-down. 2019-05-22 14:59:00.548 INFO 11624 --- [ [RASScheduler]] o.s.s.quartz.LocalDataSourceJobStore : Recovery complete. 2019-05-22 14:59:00.553 INFO 11624 --- [ [RASScheduler]] o.s.s.quartz.LocalDataSourceJobStore : Removed 0 'complete' triggers. 2019-05-22 14:59:00.555 INFO 11624 --- [ [RASScheduler]] o.s.s.quartz.LocalDataSourceJobStore : Removed 0 stale fired job entries.
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2019-05-22 15:02:00
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> java定時(shí)調(diào)度quartz ,為啥要這么多表,其他表做啥的? QRTZ_FIRED_TRIGGERS ``QRTZ_PAUSED_TRIGGER_GRPS``
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2019-05-22 14:15:00
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> ----job.getJobName()--null ----SpringUtils--beanName--null 2019-05-22 13:23:57.137 INFO 9660 --- [duler_Worker-12] c.r.p.monitor.job.util.ScheduleJob : 任務(wù)開(kāi)始執(zhí)行 - 名稱:null 方法:null 2019-05-22 13:23:57.137 INFO 9660 --- [duler_Worker-12] c.r.p.monitor.job.util.ScheduleJob : 任務(wù)執(zhí)行失敗 - 名稱:null 方法:null 2019-05-22 13:23:57.137 ERROR 9660 --- [duler_Worker-12] c.r.p.monitor.job.util.ScheduleJob : 任務(wù)執(zhí)行異常 - : java.lang.IllegalArgumentException: 'name' must not be null at org.springframework.util.Assert.notNull(Assert.java:193) ~[spring-core-5.0.7.RELEASE.jar:5.0.7.RELEASE] at org.springframework.beans.factory.BeanFactoryUtils.transformedBeanName(BeanFactoryUtils.java:74) ~[spring-beans-5.0.7.RELEASE.jar:5.0.7.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.transformedBeanName(AbstractBeanFactory.java:1122) ~[spring-beans-5.0.7.RELEASE.jar:5.0.7.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:242) ~[spring-beans-5.0.7.RELEASE.jar:5.0.7.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) ~[spring-beans-5.0.7.RELEASE.jar:5.0.7.RELEASE] at com.ras.common.utils.spring.SpringUtils.getBean(SpringUtils.java:37) ~[classes/:na] at com.ras.project.monitor.job.util.ScheduleRunnable.(ScheduleRunnable.java:26) ~[classes/:na] at com.ras.project.monitor.job.util.ScheduleJob.executeInternal(ScheduleJob.java:83) ~[classes/:na] at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:75) [spring-context-support-5.0.7.RELEASE.jar:5.0.7.RELEASE] at org.quartz.core.JobRunShell.run(JobRunShell.java:202) [quartz-2.3.0.jar:na] at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573) [quartz-2.3.0.jar:na]
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2019-05-22 13:26:00
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 2019-05-21 14:38:01.433 WARN 10480 --- [_ClusterManager] o.s.s.quartz.LocalDataSourceJobStore : This scheduler instance (20160101-0008041558420551959) is still active but was recovered by another instance in the cluster. This may cause inconsistent behavior.
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2019-05-21 14:39:00
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 2019-05-14 16:56:27.198 WARN 11328 --- [_ClusterManager] o.s.s.quartz.LocalDataSourceJobStore : This scheduler instance (20160101-0008041557823889728) is still active but was recovered by another instance in the cluster. This may cause inconsistent behavior. 2019-05-14 16:56:42.203 WARN 11328 --- [_ClusterManager] o.s.s.quartz.LocalDataSourceJobStore : This scheduler instance (20160101-0008041557823889728) is still active but was recovered by another instance in the cluster. This may cause inconsistent behavior.
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2019-05-14 16:59:00
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 使用Spring Boot 2.x 做了一個(gè)后臺(tái)管理系統(tǒng),集成了Quartz功能,但有些工程需要用到定時(shí)任務(wù),有些工程不會(huì)用到定時(shí)任務(wù),有沒(méi)有辦法做一個(gè)設(shè)置,能夠在用不到定時(shí)任務(wù)的工程中停用quartz,這樣最起碼不用創(chuàng)建quartz數(shù)據(jù)庫(kù),減少一定的施工難度
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2018-11-05 14:20:00
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 使用quartz做定時(shí)任務(wù),設(shè)置觸發(fā)時(shí)間0/20 * *?,會(huì)在每分鐘的00、20、40秒時(shí)執(zhí)行任務(wù)。任務(wù)觸發(fā)后執(zhí)行了兩次,比如第一次在00秒觸發(fā)并執(zhí)行了任務(wù),更新了下次觸發(fā)時(shí)間是20秒時(shí)。接著又執(zhí)行了,更新了下次觸發(fā)時(shí)間是40秒時(shí)觸發(fā)。到了20秒時(shí)就不會(huì)在觸發(fā)任務(wù),等到40秒才會(huì)觸發(fā)并在執(zhí)行2次任務(wù)。設(shè)置分鐘或小時(shí)觸發(fā)時(shí)會(huì)正常觸發(fā),設(shè)置秒就不行。 使用的包是quartz-1.5.2.jar。這是什么原因造成的,求大神們幫忙看下 謝謝
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2019-02-18 18:03:00
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> @紅薯 你好,想跟你請(qǐng)教個(gè)問(wèn)題: 我實(shí)現(xiàn)了一個(gè)調(diào)度引擎: 基本模型: 基于事件或Quartz定時(shí)生成一個(gè)job,每個(gè)job由若干個(gè)task組成,task之間存在串行或并行的依賴關(guān)系。 task的具體實(shí)現(xiàn)引擎不關(guān)心,調(diào)度引擎只負(fù)責(zé)按照拓?fù)溥壿嫲l(fā)出HTTP信號(hào)調(diào)用任務(wù),并由任務(wù)實(shí)現(xiàn)端通過(guò)HTTP通知引擎任務(wù)的完成狀態(tài)。 已知的使用場(chǎng)景是ETL工具的調(diào)度和任何單例多任務(wù)協(xié)作的調(diào)度 用戶只需要定義并實(shí)現(xiàn)具體的單任務(wù)接口(基于HTTP),并定義單任務(wù)所依賴的上游任務(wù), 則引擎自動(dòng)生成可視化的拓?fù)淞鞒虉D(自動(dòng)生成的拓?fù)淞鞒虉D如下),并按照拓?fù)潢P(guān)系依次發(fā)出調(diào)度信號(hào)至任務(wù)接口,實(shí)現(xiàn)各類ETL批處理調(diào)度或任何單例的調(diào)度流程。和其它調(diào)度類中間件相比,我的這個(gè)比較重視任務(wù)拓?fù)潢P(guān)系可視化和任務(wù)執(zhí)行階段的直觀可視化。不知您覺(jué)得此項(xiàng)目是否有價(jià)值,是否可以開(kāi)源。目前該框架僅在我所在公司數(shù)據(jù)中心使用
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2019-01-08 22:16:00
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> @Configuration public class CorsConfig extends WebMvcConfigurationSupport{ @Override protected void addCorsMappings(CorsRegistry registry) { registry .addMapping("/**")// 4對(duì)接口配置跨域設(shè)置 .allowedMethods("*")// 3允許任何方法(post、get等) .allowedHeaders("*")// 2允許任何頭 .allowedOrigins("*")//1允許任何域名使用, .allowCredentials(true);// 默認(rèn)不支持User Credentials } //swagger2 跨域配置 @Override protected void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/**").addResourceLocations("classpath:/static/"); registry.addResourceHandler("doc.html") .addResourceLocations("classpath:/META-INF/resources/"); registry.addResourceHandler("/webjars/**") .addResourceLocations("classpath:/META-INF/resources/webjars/"); super.addResourceHandlers(registry); } } 問(wèn)題如下: 我已經(jīng)配置好,CORS,配置代碼如上,現(xiàn)在的問(wèn)題是.前端 使用localhost:8087 登陸,保存在session中的信息不會(huì)丟失,一切正常,但是使用192.169.0.22:8087的時(shí)候,在ie9的環(huán)境里,session保存的用戶信息就丟失了.經(jīng)理說(shuō)參考一下P3P的配置.但是百度了好久,沒(méi)有關(guān)于springboot下的p3p配置,參考了一下帖子里的配置,并沒(méi)有生效.所以想問(wèn)一下原因.以及解決方案. 我目前想到的是把session 換成 redis session試試,結(jié)果在使用redis的時(shí)候.發(fā)現(xiàn)redis 的包.和我在用的quartz包起沖突了,實(shí)在莫得辦法了.請(qǐng)教一下各位大佬. 報(bào)錯(cuò)信息 Description: An attempt was made to call the method org.quartz.Scheduler.getListenerManager()Lorg/quartz/ListenerManager; but it does not exist. Its class, org.quartz.Scheduler, is available from the following locations: jar:file:/C:/Users/Zmm/.m2/repository/org/quartz-scheduler/quartz/1.8.6/quartz-1.8.6.jar!/org/quartz/Scheduler.class It was loaded from the following location: file:/C:/Users/Zmm/.m2/repository/org/quartz-scheduler/quartz/1.8.6/quartz-1.8.6.jar Action: Correct the classpath of your application so that it contains a single, compatible version of org.quartz.Scheduler
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2019-01-12 15:50:00
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.conn.scheme.Scheme; import org.apache.http.conn.ssl.SSLSocketFactory; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.params.CoreConnectionPNames; import org.apache.http.protocol.HTTP; import org.apache.http.util.EntityUtils; import javax.net.ssl.SSLContext; import javax.net.ssl.TrustManager; import javax.net.ssl.X509TrustManager; import java.io.IOException; import java.security.cert.CertificateException; /*** *https post請(qǐng)求 *lvzhuolin@baidu.com */ public class HttpClientUtils { private static DefaultHttpClient client; private static void enableSSL(DefaultHttpClient httpclient){ try { SSLContext sslcontext = SSLContext.getInstance("TLS"); sslcontext.init(null, new TrustManager[] { truseAllManager }, null); SSLSocketFactory sf = new SSLSocketFactory(sslcontext); sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); Scheme https = new Scheme("https", sf, 443); httpclient.getConnectionManager().getSchemeRegistry().register(https); } catch (Exception e) { e.printStackTrace(); } } private static TrustManager truseAllManager = new X509TrustManager(){ public void checkClientTrusted(java.security.cert.X509Certificate[] arg0, String arg1) throws CertificateException { } public void checkServerTrusted(java.security.cert.X509Certificate[] arg0, String arg1) throws CertificateException { // TODO Auto-generated method stub } public java.security.cert.X509Certificate[] getAcceptedIssuers() { // TODO Auto-generated method stub return null; } }; /** *//** * Send a XML-Formed string to HTTP Server by post method * * @param url * the request URL string * @param xmlData * XML-Formed string ,will not check whether this string is * XML-Formed or not * @return the HTTP response status code ,like 200 represents OK,404 not * found * @throws IOException * @throws ClientProtocolException */ public static String sendDataByPost(String url, String data) throws Exception { if (client == null) { // Create HttpClient Object client = new DefaultHttpClient(); enableSSL(client); } client.getParams().setParameter("http.protocol.content-charset", HTTP.UTF_8); client.getParams().setParameter(HTTP.CONTENT_ENCODING, HTTP.UTF_8); client.getParams().setParameter(HTTP.CHARSET_PARAM, HTTP.UTF_8); client.getParams().setParameter(HTTP.DEFAULT_PROTOCOL_CHARSET, HTTP.UTF_8); client.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 10000); client.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 10000); HttpPost post = new HttpPost(url); StringEntity entity = new StringEntity(data,"GBK"); entity.setContentType("application/x-www-form-urlencoded"); post.setEntity(entity); HttpResponse response = client.execute(post); HttpEntity entityRep = response.getEntity(); String strrep=""; if (entityRep != null) { strrep = EntityUtils.toString(response.getEntity(),"UTF-8"); // Do not need the rest post.abort(); } EntityUtils.consume(entityRep); // instream.close(); return strrep; } } 多線程調(diào)用sendDataByPost,出現(xiàn)異常: java.lang.IllegalStateException: Invalid use of BasicClientConnManager: connection still allocated. Make sure to release the connection before allocating another one. httpclient 版本是4.5 ,而且代碼中包括DefaultHttpClient的很多類都過(guò)時(shí)了。請(qǐng)問(wèn)有沒(méi)有httpclient-4.5以上的解決方案,并且支持多線程調(diào)用呢?
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2020-04-08 10:15:00
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 分頁(yè)抓取淘寶店鋪全部寶貝,httpclient請(qǐng)求鏈接: https://h5api.m.taobao.com/h5/mtop.taobao.wsearch.appsearch/1.0/?jsv=2.5.1&appKey=12574478&t=1583396647434&sign=7c6abfcf8351e66c169b1c307d67a2fa&api=mtop.taobao.wsearch.appSearch&v=1.0&H5Request=true&AntiCreep=true&type=jsonp&timeout=3000&dataType=jsonp&callback=mtopjsonp1&data=%7B%22m%22%3A%22shopitemsearch%22%2C%22vm%22%3A%22nw%22%2C%22sversion%22%3A%224.6%22%2C%22shopId%22%3A%2235811053%22%2C%22sellerId%22%3A%2298027113%22%2C%22style%22%3A%22wf%22%2C%22page%22%3A%221%22%2C%22sort%22%3A%22_coefp%22%2C%22catmap%22%3A%22%22%2C%22wirelessShopCategoryList%22%3A%22%22%7D 其中sign算法沒(méi)問(wèn)題(網(wǎng)上百度一大堆),data參數(shù)中有page=1,page=1的時(shí)候沒(méi)有問(wèn)題數(shù)據(jù)可以正常返回,但是page改成大于1后,response返回信息RGV587_ERROR::SM,不知道有同仁遇到的嗎請(qǐng)賜教。 不是請(qǐng)求頻繁的問(wèn)題應(yīng)該,page=1的話死循環(huán)請(qǐng)求都返回正常數(shù)據(jù),就是一改page就不行。
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2020-03-05 17:50:00
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> http://www.sse.com.cn/assortment/stock/list/name/# 這里找不到 翻頁(yè)的參數(shù) 后來(lái)看網(wǎng)絡(luò)找了 地址,可是請(qǐng)求 卻返回錯(cuò)誤 http://query.sse.com.cn/commonQuery.do?jsonCallBack=jsonpCallback13471&isPagination=true&sqlId=COMMON_SSE_ZQPZ_GPLB_MCJS_SSAG_1&pageHelp.pageSize=50&pageHelp.pageNo=2&pageHelp.beginPage=1&pageHelp.endPage=5&_=1446453188557 詳情頁(yè) 也是 這樣 http://www.sse.com.cn/assortment/stock/list/stockdetails/company/index.shtml?COMPANY_CODE=600005 --》 http://query.sse.com.cn/commonQuery.do?jsonCallBack=jsonp1446453525116&_=1446453525188&isPagination=false&sqlId=COMMON_SSE_ZQPZ_GP_GPLB_C&productid=600005 我找的地址不對(duì)嗎? 怎么弄?
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2015-11-02 16:40:00
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 我的理解:HTTP最大連接是600,每個(gè)route的連接不能超過(guò)300 我的問(wèn)題:如果300個(gè)并發(fā)請(qǐng)求A HOST,當(dāng)?shù)?01個(gè)請(qǐng)求過(guò)來(lái)時(shí),顯然A HOST對(duì)應(yīng)的route池子滿了,這時(shí)HTTPClient是從600大池子里面借用還是將301請(qǐng)求放入queue中直到timeout? 源碼貼圖: 請(qǐng)大牛幫忙分析下
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2019-01-17 19:52:00
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 昨天接觸到了httpclient和jsoup, 使用httpclient模擬登陸OA,想抓OA的數(shù)據(jù)下來(lái),無(wú)實(shí)在意義,只是練手。 不過(guò)在過(guò)程中出了一點(diǎn)問(wèn)題。 public static boolean login(){ HttpGet get = new HttpGet(uri+"/logincheck.php"); List params = new ArrayList(); //.... try { String str = EntityUtils.toString(new UrlEncodedFormEntity(params)); get.setURI(new URI(get.getURI()+"?"+str)); response = client.execute(get); //.... } catch (Exception e) { e.printStackTrace(); } if(response.getStatusLine().getStatusCode()==200){ System.out.println("登陸成功!"); return true; }else{ return false; } } 這個(gè)方法沒(méi)有問(wèn)題,不過(guò)在登陸之后,我直接訪問(wèn)一個(gè)OA里面的新聞頁(yè)面,去抓數(shù)據(jù)的時(shí)候就會(huì)出錯(cuò)。 public static String getNewsContent(){ HttpGet get = new HttpGet(uri+"/general/notify/show"); try { response = client.execute(get); HttpEntity entity = response.getEntity(); String newsContent = EntityUtils.toString(entity); Document doc = Jsoup.parse(newsContent); Elements elements = doc.getElementsByClass("TableLine1"); for(Element element : elements){ System.out.println(element.val()); } } catch (Exception e) { e.printStackTrace(); } return ""; } 在第二次client.execute(get)的時(shí)候就會(huì)報(bào)錯(cuò)。 java.lang.IllegalStateException: Invalid use of BasicClientConnManager: connection still allocated. Make sure to release the connection before allocating another one.
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2013-10-11 17:16:00
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> java httpclient模擬一個(gè)請(qǐng)求,以下是f12看到的請(qǐng)求相關(guān)參數(shù)和header
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2018-09-09 13:34:00
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> RegController.java Controller Springmvc的方法: IMUsers.Main(nkname, password); 在RegController中調(diào)用IMUsers的Main執(zhí)行就錯(cuò)誤了 在IMUsers中創(chuàng)建一個(gè)Main方法,然后調(diào)用Main就沒(méi)有錯(cuò)。 IMUsers.java public static final Logger LOGGER = LoggerFactory.getLogger(IMUsers.class); public static final JsonNodeFactory factory = new JsonNodeFactory(false); //35行 public static Credential credential = new ClientSecretCredential(Constants.APP_CLIENT_ID, Constants.APP_CLIENT_SECRET, Roles.USER_ROLE_APPADMIN); public static void Main(String username,String password){ ObjectNode datanode = JsonNodeFactory.instance.objectNode(); datanode.put("username",username); datanode.put("password", password); System.out.println(datanode); ObjectNode createNewIMUserSingleNode = IMUsers.createNewIMUserSingle(datanode); if (null != createNewIMUserSingleNode) { System.out.println("為空"); } } /** * 注冊(cè)IM用戶[單個(gè)] * * 給指定Constants.APPKEY創(chuàng)建一個(gè)新的用戶 * * @param dataNode * @return */ public static ObjectNode createNewIMUserSingle(ObjectNode dataNode) { ObjectNode objectNode = factory.objectNode(); // check Constants.APPKEY format if (!HTTPClientUtils.match("^(?!-)[0-9a-zA-Z\\-]+#[0-9a-zA-Z]+", Constants.APPKEY)) { LOGGER.error("Bad format of Constants.APPKEY: " + Constants.APPKEY); System.out.println("錯(cuò)誤"); objectNode.put("message", "Bad format of Constants.APPKEY"); return objectNode; } objectNode.removeAll(); // check properties that must be provided if (null != dataNode && !dataNode.has("username")) { LOGGER.error("Property that named username must be provided ."); objectNode.put("message", "Property that named username must be provided ."); return objectNode; } if (null != dataNode && !dataNode.has("password")) { LOGGER.error("Property that named password must be provided ."); objectNode.put("message", "Property that named password must be provided ."); return objectNode; } try { objectNode = HTTPClientUtils.sendHTTPRequest(EndPoints.USERS_URL, credential, dataNode, HTTPMethod.METHOD_POST); } catch (Exception e) { e.printStackTrace(); } return objectNode; } java.lang.ClassNotFoundException: org.apache.http.HttpEntity at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571) at com.datanum.user.httpclient.api.IMUsers.(IMUsers.java:35) at com.datanum.user.web.RegController.RegQQ(RegController.java:172) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:219) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:745) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:686) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:838) at javax.servlet.http.HttpServlet.service(HttpServlet.java:646) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812) at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:124) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611) at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2440) at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2429) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:724)
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2015-10-31 12:15:00
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 配置好 Nginx 相關(guān) SSL 后,寫(xiě)一個(gè)簡(jiǎn)單的 index.html 可以用 https 和 http 正常訪問(wèn),但是在安裝好 wordpress 后,https訪問(wèn)直接就下載相應(yīng)的php,如index.php、wp-admin.php 等等,如圖
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2017-12-04 17:08:00
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 公司突然需要搭建wiki系統(tǒng),想通過(guò)插件,繼續(xù)利用wordpress上傳的功能,但是上傳的位置非本地,而是設(shè)置好的存儲(chǔ)服務(wù)器!請(qǐng)問(wèn)大俠有何建議,或者這個(gè)需求是否有解決方案?
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2017-04-14 11:17:00
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 請(qǐng)問(wèn)大家在做area圖片熱點(diǎn)的時(shí)候是怎么解決firefox一點(diǎn)擊就出現(xiàn)虛線框的問(wèn)題那? 用了outline:none,onfocus="this.blur()"hidefocus=”true”,還有::-moz-focus-inner全部沒(méi)有效.
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2020-03-28 19:05:00
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 每個(gè)人開(kāi)發(fā)者都是由初級(jí)一步一步走向高級(jí)工程師。當(dāng)然,不是說(shuō)工作了多少年就能稱為一名合格的高級(jí)軟件工程師。有可能和你一同學(xué)習(xí)的人一兩年的時(shí)間就拉開(kāi)了距離。究其原因,我個(gè)人看法,有以下幾點(diǎn): 好學(xué):別人下班放學(xué)擠地鐵都在學(xué)習(xí),你在上網(wǎng)看視頻玩游戲 天分:這個(gè)很難超越,有些人他天生就屬于這個(gè)行業(yè),對(duì)于技術(shù)一點(diǎn)就通,一悟就會(huì) 環(huán)境:好的開(kāi)發(fā)團(tuán)隊(duì)能讓人飛速進(jìn)步 經(jīng)驗(yàn)是不平等的 自學(xué)5年編程,有可能比不上一個(gè)全職工作一年的人。5年你可能掌握了大量的理論知識(shí),但是如果沒(méi)有實(shí)踐很難學(xué)精。工作中會(huì)碰到各種奇怪的問(wèn)題。還有沒(méi)有和其他人合作,你的代碼沒(méi)有被其他開(kāi)發(fā)者審核過(guò),你就不會(huì)知道代碼存在哪些缺陷,也就很難進(jìn)步。 導(dǎo)師很重要 好的導(dǎo)師能讓你快速成長(zhǎng)進(jìn)步,你可能對(duì)某個(gè)知識(shí)點(diǎn)思考了半天甚至一個(gè)星期都沒(méi)有弄明白。如果有經(jīng)驗(yàn)豐富的人指點(diǎn)就有一種柳暗花明又一村的感覺(jué)。 職稱不是很重要 5人團(tuán)隊(duì)的首席技術(shù)官與50人團(tuán)隊(duì)或500人團(tuán)隊(duì)不同,所做的工作和技能也完全不同?!案呒?jí)”職稱并不代表就是高級(jí)工程師,所以不要在意職稱,能力最重要。 測(cè)試很重要 記住一句話,你寫(xiě)的代碼是不可靠的。必須測(cè)試,測(cè)試,再測(cè)試。 不要盲目追求新技術(shù) 新技術(shù)很好,但不要隨意將新技術(shù)引進(jìn)到項(xiàng)目當(dāng)中??梢韵攘私鈱W(xué)習(xí)新技術(shù),然后再看它是否適合應(yīng)用到項(xiàng)目中。 有缺陷是正常的 世界上沒(méi)有任何一個(gè)完美項(xiàng)目。就算再完美的技術(shù)團(tuán)隊(duì)或者技術(shù)非常高超的人,也會(huì)有設(shè)計(jì)漏洞。如果你剛加入公司不要抱怨前同事寫(xiě)的代碼爛,甚至有種沖動(dòng)想把項(xiàng)目推倒重來(lái)。對(duì)于一個(gè)非常小的項(xiàng)目,如果你有足夠的把握說(shuō)服公司領(lǐng)導(dǎo)層或者和團(tuán)隊(duì)一起討論重新設(shè)計(jì)是不錯(cuò)的選擇。但是,一個(gè)巨大項(xiàng)目想重新開(kāi)始是非常不明智的。第一,無(wú)限增加時(shí)間成本;第二,可能你重新設(shè)計(jì)剛開(kāi)始會(huì)比之前合理些,但隨著時(shí)間推移,你的設(shè)計(jì)也會(huì)有設(shè)計(jì)的非常糟糕的地方。公認(rèn)很好的解決方法是,在開(kāi)發(fā)新需求的時(shí)候三思,盡量把代碼設(shè)計(jì)合理,一旦發(fā)現(xiàn)不合理的代碼馬上重構(gòu)。 代碼質(zhì)量最重要 如果一個(gè)項(xiàng)目除了你還有其他開(kāi)發(fā)同事。那么,就應(yīng)該制定代碼風(fēng)格,一個(gè)項(xiàng)目不同代碼風(fēng)格一個(gè)顯的不專業(yè),造成代碼混亂。另外,不同的風(fēng)格不易理解,項(xiàng)目開(kāi)發(fā)中一大筆時(shí)間是閱讀之前的代碼。同時(shí)也要互相代碼審核,不要把它看做是一種壓力,每個(gè)人都會(huì)犯錯(cuò)誤,互相審核可以降低代碼缺陷。 重構(gòu)需三思 重構(gòu)代碼時(shí)最好先弄清楚相關(guān)代碼會(huì)對(duì)哪些功能產(chǎn)生影響,一塊代碼區(qū)可能和多個(gè)功能相關(guān)聯(lián)。你出于好意,改好了某個(gè)功能缺陷影響到其他功能就得不償失了。個(gè)人建議修改代碼需三思,如果是和你共事同事寫(xiě)的代碼,最好是由他改寫(xiě),或者問(wèn)清楚再改動(dòng)。 技術(shù)債 技術(shù)債的定義是指開(kāi)發(fā)人員為了加速軟件開(kāi)發(fā),在應(yīng)該采用最佳方案時(shí)進(jìn)行了妥協(xié),改用了短期內(nèi)能加速軟件開(kāi)發(fā)的方案,從而在未來(lái)給自己帶來(lái)的額外開(kāi)發(fā)負(fù)擔(dān)。 看起來(lái)好像我們不應(yīng)該背負(fù)任何技術(shù)債。其實(shí)不然,適當(dāng)妥協(xié)有時(shí)是一種不錯(cuò)的選擇。不要理解錯(cuò)我的意思,如果你明知道只要多加思考就能想到更好的技術(shù)方法,而你為了圖方便選擇背負(fù)技術(shù)債就是你的不對(duì)了。當(dāng)今軟件行業(yè)講究快速迭代,時(shí)間就是金錢。如果沒(méi)有找到一個(gè)合適的技術(shù)方案而放棄一個(gè)核心功能,可能會(huì)競(jìng)爭(zhēng)對(duì)手趕超甚至淘汰。 資歷意味著成為最好的程序員 除編程外,高級(jí)工程師必須具備許多其他技能 ,溝通和項(xiàng)目管理。 不是每個(gè)人都會(huì)在職業(yè)生涯中成為“高級(jí)” 。資歷需要多年工作經(jīng)驗(yàn)的累積。然而,多年的經(jīng)驗(yàn)是資歷的必要但不充分的條件。它必須是一種正確的體驗(yàn),在這種體驗(yàn)中,你將正確的課程內(nèi)化,并成功地將這些學(xué)習(xí)應(yīng)用于未來(lái)。有時(shí)候,更大的課程可能需要一年或更長(zhǎng)時(shí)間才能完全顯現(xiàn) - 這就是為什么多年的經(jīng)驗(yàn)仍然很重要,即使你是一個(gè)非常好的程序員。 我們?cè)谀承┓矫嫒蕴幱诔跫?jí)階段 。最后很重要,無(wú)論你有多少年工作經(jīng)驗(yàn),仍然有一些你不太了解的地方。承認(rèn)你不知道的是填補(bǔ)這一空白并從更有經(jīng)驗(yàn)的人。 新聞 Firefox將推出付費(fèi)版 Mozilla將于今年秋季推出付費(fèi)版Firefox。你愿意購(gòu)買付費(fèi)版本嗎? 鏈接: Firefox將推出付費(fèi)版 當(dāng)我們?cè)跒g覽器中輸入www.google.com時(shí),幕后會(huì)發(fā)生什么 幾乎我們每天都在使用瀏覽器,你知道在瀏覽器輸入網(wǎng)站地址,幕后會(huì)發(fā)生什么嗎? 鏈接: 當(dāng)我們?cè)跒g覽器中輸入www.google.com時(shí),幕后會(huì)發(fā)生什么 前端 HTML分區(qū)元素 一篇非常長(zhǎng)的文章,介紹HTML5中的分區(qū)元素nav,aside,article以及 section 鏈接: HTML分區(qū)元素 微前端 在本文描述了將前端整體分解為更小,更易于管理的部分的趨勢(shì),以及這種體系結(jié)構(gòu)如何提高前端代碼團(tuán)隊(duì)的效率和效率 鏈接: 微前端 Web組件教程入門 Web Components(也稱為Custom Elements)已成為多個(gè)瀏覽器的標(biāo)準(zhǔn)API,不需要React,Angular或Vue等前端框架,就能使用HTML,CSS和JavaScript實(shí)現(xiàn)可重用的組件。 鏈接: Web組件教程入門 Web組件的問(wèn)題 ) web組件也有許多缺點(diǎn)。例如,它們?cè)S多技術(shù)限制,并且容易濫用。在本文解釋為什么會(huì)這樣,并建議開(kāi)發(fā)組件的另一種方法。 鏈接: Web組件的問(wèn)題 JavaScript Date對(duì)象 詳細(xì)講解了JavaScript Date對(duì)象 鏈接: JavaScript Date對(duì)象 首字母放大設(shè)計(jì) 英文網(wǎng)站以及一些書(shū)籍都會(huì)把首字母放大表示讀者已進(jìn)入一個(gè)重要的新部分,或者新章節(jié)開(kāi)始。本文介紹如何設(shè)計(jì)好放大首字母。 鏈接: 首字母放大設(shè)計(jì) 工具 Zeplin 將設(shè)計(jì)系統(tǒng)連接與開(kāi)發(fā)關(guān)聯(lián)。簡(jiǎn)單說(shuō)設(shè)計(jì)師出圖,開(kāi)發(fā)者直接復(fù)制顏色,文本樣式和組件。 鏈接: Zeplin Whimsical 全新的思維導(dǎo)圖,這是一篇關(guān)于它的介紹文章 鏈接: Whimsical
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2019-06-25 10:13:00
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 如題。 為啥,從情感上,我傾向于Firefox呢?
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2019-06-19 15:51:00
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 在html head里面設(shè)置了 < meta name ="referrer" content ="no-referrer" > 發(fā)現(xiàn)對(duì)css里面引用的圖片無(wú)效,還是會(huì)發(fā)送referrer,img的正常,只有chrome有這個(gè)問(wèn)題,firefox是沒(méi)問(wèn)題的。 有解決辦法嗎?
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2019-05-21 20:09:00
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 谷歌瀏覽器好在哪里,比起火狐和IE?
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2019-03-16 05:34:00
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> var h5player_mousedown = function(e) { var evt = window.event || e; mouse_button = evt.button; 如此處的代碼所示: 在谷歌瀏覽器可以正確的顯示button的值出來(lái)。 但是在火狐瀏覽器顯示undefined 請(qǐng)問(wèn)一下,怎么才能在火狐瀏覽器獲得我想要的button的值呢?謝謝
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2019-02-13 11:29:00
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 為什么搞開(kāi)發(fā)的,都用火狐瀏覽器,而不用谷歌瀏覽器?
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2018-11-27 22:45:00
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 而且在火狐就會(huì),而谷歌可以正常顯示
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2018-11-02 20:31:00
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 最近換回firefox瀏覽器使用,調(diào)試的時(shí)候發(fā)現(xiàn)沒(méi)有辦法安裝firebug了,想問(wèn)一下現(xiàn)在firefox瀏覽器是合成了還是現(xiàn)在不能安裝firebug了??
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2018-11-06 18:28:00
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 分別用3個(gè)瀏覽器的websocket功能,給云端發(fā)送數(shù)據(jù),狂點(diǎn)發(fā)送的結(jié)果如下,從圖上可以看出,chrome很卡,firefox 過(guò)了一會(huì)就開(kāi)始卡,并且右邊的數(shù)據(jù)更新不及時(shí),而Safari一直比較流暢。請(qǐng)問(wèn)是什么原因的導(dǎo)致? 系統(tǒng)信息 Chrome 版本 69.0.3497.92(正式版本) (64 位): FireFox 正式版 62.0 (64 位) Safari 版本 12.0 (13606.2.11)
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2018-09-18 20:03:00
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 1. 分析firefox的源碼是用這個(gè)代碼庫(kù)嗎?https://hg.mozilla.org/releases/mozilla-release/ 2. 我查看commit歷史是通過(guò)`hg log` 看的,得到的是changeset,那怎么知道這個(gè)changeset對(duì)應(yīng)的是哪個(gè)firefox版本呢?
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2017-08-30 15:43:00
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 學(xué)生一枚,最近在開(kāi)發(fā)一個(gè)項(xiàng)目,搞PHP的。 原生滾動(dòng)條實(shí)在是太難看了,想要使用Css修改其樣式,webkit已解決,moz沒(méi)有效果。 閱讀 卡飯論壇的該帖 之后,滾動(dòng)條消失了,遂想請(qǐng)教前端大牛這一塊的問(wèn)題。 那么問(wèn)題來(lái)了:怎么修改一個(gè)div的滾動(dòng)條,使其兼容firefox,且請(qǐng)大牛指出每個(gè)屬性的作用。 望大牛賜教。
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2017-08-19 17:49:00
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> jQuery trigger只對(duì)IE有效但對(duì)ff和chrome無(wú)效 咋回事哈 我是在一個(gè)頁(yè)面中使用ajax將另一個(gè)頁(yè)面加載進(jìn)來(lái),然后在trigger加載進(jìn)來(lái)的頁(yè)面中的某個(gè)鏈接(按鈕). IE有效,但是ff和chrome無(wú)效..
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2011-06-27 23:27:00
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 遇到的問(wèn)題是登錄了賬號(hào)不能同步收藏
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2017-05-27 14:11:00
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 使用Chrome無(wú)法登陸Github,無(wú)論是否開(kāi)啟代理; 使用firefox可以登錄。
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2014-04-23 16:43:00
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> Jcrop裁剪圖片,在火狐下載入圖片,第一次是小黑點(diǎn): 第二次載入同一張圖片,就可以正常載入了: 在谷歌和IE下沒(méi)有這個(gè)問(wèn)題。 我觀察了頁(yè)面元素,錯(cuò)誤的時(shí)候,頁(yè)面的div和顯示圖片的img的寬是0,高是17px。 下面是我的JS代碼: /** * * Created by wangxy on 2017/3/4. */ function readURLMy (input) { // 判斷你圖片的大小和類型 var file = input. value ; console . log (file) ; if (! /.(jpg|jpeg|png|JPG|JPEG|PNG)$/ . test (file)) { $ ( "#error_photo_type" ). html ( ' 您選擇的圖片不符合規(guī)則,請(qǐng)重新選擇 ' ) ; $ ( "#error_photo_type" ). show () ; //$('form').hide(); $ ( '#uploadPhoto' ). hide () ; $ ( '#canclePhoto' ). hide () ; $ ( '.cur_img_right' ). hide () ; $ ( '.js_cur_img' ). show () ; jcrop_api . destroy () ; $mainImg. removeAttr ( "style" ) ; // 移除掉所有的樣式,讓 jcrop 重新生成 $mainImg. removeAttr ( 'src' ) ; return false ; } else { // if (((input.files[0].size).toFixed(2)) >= (3 * 1024 * 1024)) { // $("#error_photo_type").html(' 您選擇的圖片不符合規(guī)則,請(qǐng)重新選擇 '); // $("#error_photo_type").show(); // $('form').hide(); // $('.cur_img_right').hide(); // $('.js_cur_img').show(); // return false; // } } var ua = navigator . userAgent ; if (ua. indexOf ( "MSIE 8.0" ) > 0 || ua. indexOf ( "MSIE 9.0" ) > 0 ) { $ ( "#error_photo_type" ). hide () ; $ ( 'form' ). show () ; $ ( '.cur_img_right' ). show () ; $ ( '.js_cur_img' ). hide () ; $ ( '#uploadPhoto' ). show () ; $ ( '#canclePhoto' ). show () ; var fileInputElm = jQuery ( '#fcupload' ) ; var reallocalpath = jQuery ( '#fcupload' )[ 0 ]. value ; console . log (reallocalpath) ; fileInputElm. get ( 0 ). select () ; var pic = $mainImg. get ( 0 ) ; pic. style . filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='scale',src= \" " + reallocalpath + " \" )" ; pic. src = reallocalpath ; $mainImg. css ( "width" , "400px" ) ; $mainImg. css ( "height" , "400px" ) ; $mainImg. show () ; $pimg. get ( 0 ). style . filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='scale',src= \" " + reallocalpath + " \" )" ; $pimg. get ( 0 ). src = reallocalpath ; $pimg2. get ( 0 ). style . filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='scale',src= \" " + reallocalpath + " \" )" ; $pimg2. get ( 0 ). src = reallocalpath ; $pimg3. get ( 0 ). style . filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='scale',src= \" " + reallocalpath + " \" )" ; $pimg3. get ( 0 ). src = reallocalpath ; $preview. css ( "top" , "-3" ) ; $preview. css ( "left" , "413" ) ; $preview2. css ( "top" , "-65" ) ; // $preview2.css("left","574px"); $preview3. css ( "top" , "-191px" ) ; // $preview3.css("left","584px"); // 顯示三個(gè)預(yù)覽圖 //$preview.show(); //$preview2.show(); //$preview3.show(); if ( jcrop_api != undefined ) { jcrop_api . destroy () ; } jcrop_api = $ . Jcrop ( '#target' , { setSelect : [ 20 , 20 , 200 , 200 ] , onChange : updatePreview , onSelect : updatePreview , boxWidth : 322 , aspectRatio : xsize / ysize }) ; var bounds = jcrop_api . getBounds () ; boundx = bounds[ 0 ] ; boundy = bounds[ 1 ] ; $preview. appendTo ( jcrop_api . ui .holder) ; $preview2. appendTo ( jcrop_api . ui .holder) ; $preview3. appendTo ( jcrop_api . ui .holder) ; jcrop_api . release () ; jcrop_api . disable () ; } else { if (((input. files [ 0 ]. size ). toFixed ( 2 )) >= ( 3 * 1024 * 1024 )) { $ ( "#error_photo_type" ). html ( ' 您選擇的圖片不符合規(guī)則,請(qǐng)重新選擇 ' ) ; $ ( "#error_photo_type" ). show () ; //$('form').hide(); $ ( '#uploadPhoto' ). hide () ; $ ( '#canclePhoto' ). hide () ; $ ( '.cur_img_right' ). hide () ; $ ( '.js_cur_img' ). show () ; jcrop_api . destroy () ; $mainImg. removeAttr ( "style" ) ; // 移除掉所有的樣式,讓 jcrop 重新生成 $mainImg. removeAttr ( 'src' ) ; return false ; } $ ( "#error_photo_type" ). hide () ; $ ( 'form' ). show () ; $ ( '.cur_img_right' ). show () ; $ ( '.js_cur_img' ). hide () ; $ ( '#uploadPhoto' ). show () ; $ ( '#canclePhoto' ). show () ; if (input. files && input. files [ 0 ]) { var reader = new FileReader () ; reader. readAsDataURL (input. files [ 0 ]) ; reader. onload = function (e) { $mainImg. removeAttr ( "style" ) ; // 移除掉所有的樣式,讓 jcrop 重新生成 $mainImg. removeAttr ( 'src' ) ; $mainImg. attr ( 'src' , e.target. result ) ; $pimg. removeAttr ( 'src' ) ; $pimg. attr ( 'src' , e.target. result ) ; $pimg2. removeAttr ( 'src' ) ; $pimg2. attr ( 'src' , e.target. result ) ; $pimg3. removeAttr ( 'src' ) ; $pimg3. attr ( 'src' , e.target. result ) ; // 顯示三個(gè)預(yù)覽圖 $preview. show () ; $preview2. show () ; $preview3. show () ; jcrop_api = $ . Jcrop ( '#target' , { setSelect : [ 20 , 20 , 200 , 200 ] , onChange : updatePreview , onSelect : updatePreview , boxWidth : 322 , aspectRatio : xsize / ysize }) ; var bounds = jcrop_api . getBounds () ; boundx = bounds[ 0 ] ; boundy = bounds[ 1 ] ; $preview. appendTo ( jcrop_api . ui .holder) ; $preview2. appendTo ( jcrop_api . ui .holder) ; $preview3. appendTo ( jcrop_api . ui .holder) ; } ; if ( jcrop_api != undefined ) { jcrop_api . destroy () ; } } } function updatePreview (c) { $ ( "#x" ). val (c. x ) ; $ ( "#y" ). val (c. y ) ; $ ( "#w" ). val (c. w ) ; $ ( "#h" ). val (c. h ) ; if ( parseInt (c. w ) > 0 ) { var rx = xsize / c. w ; var ry = ysize / c. h ; $pimg. css ({ width : Math. round (rx * boundx ) + 'px' , height : Math. round (ry * boundy ) + 'px' , marginLeft : '-' + Math. round (rx * c. x ) + 'px' , marginTop : '-' + Math. round (ry * c. y ) + 'px' }) ; var rx = xsize2 / c. w ; var ry = ysize2 / c. h ; $pimg2. css ({ width : Math. round (rx * boundx ) + 'px' , height : Math. round (ry * boundy ) + 'px' , marginLeft : '-' + Math. round (rx * c. x ) + 'px' , marginTop : '-' + Math. round (ry * c. y ) + 'px' }) ; var rx = xsize3 / c. w ; var ry = ysize3 / c. h ; $pimg3. css ({ width : Math. round (rx * boundx ) + 'px' , height : Math. round (ry * boundy ) + 'px' , marginLeft : '-' + Math. round (rx * c. x ) + 'px' , marginTop : '-' + Math. round (ry * c. y ) + 'px' }) ; } } ; } 下面是HTML代碼,用的VM模板 #set ( $ layout = "/templates/layout/layout.vm" ) #set ( $ CSS = [ "/css/base.css" , "/css/personalCenter.css" , "/css/changeHeadImg.css" , "/css/changePassword.css" , "/css/modifyMessage.css" , "/css/uploadUserPhoto2.css" , "/css/jquery.Jcrop.css" ]) #set ( $ JS = [ "/js/jquery.Jcrop.js" , "/js/out2.js" , "/js/uploadUserPhoto2.js" , "/js/alertDiv.js" ]) #set ( $ page_title = " 個(gè)人中心 - 修改頭像 " ) ## ## ## ##
#parse ( "/templates/inc/menu.vm" )
奇怪的是谷歌IE都沒(méi)有問(wèn)題,只是火狐這樣,很蛋疼?。。。。。? 感謝大家?。?!
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2017-03-20 17:54:00