Rumah > Artikel > hujung hadapan web > Kaedah Ajax untuk mengosongkan js pelayar, css, kemahiran cache_javascript imej
Apabila membuat bahan, saya sentiasa menyimpan alamat imej pada pelayan dalam pangkalan data, dan kemudian memaparkannya dalam penyemak imbas, tetapi kemudian saya menemui dua masalah.
Pertama: Atas sebab keselamatan, js tidak boleh membaca imej setempat. Jika tidak, jika anda menulis js, anda boleh mendapatkan fail dalam komputer sesiapa sahaja.
Kedua: Imej disimpan pada pemacu keras pelayan, bukan pada pemacu keras pelanggan, jadi ia tidak boleh diambil semula
Kemudian, saya mencari kaedah di Internet, dan kaedah yang saya temui adalah semua jenis jawapan peringkat tinggi untuk menukar perduaan kepada xml Kemudian saya terlalu malas, jadi saya memikirkannya sendiri
Kaedahialah menggunakan kelas BufferedImage.
Mula
Pertama sekali, izinkan saya bercakap tentang idea saya, iaitu memuatkan imej tempatan ke dalam ingatan, kemudian masukkan ke dalam aliran penimbal BufferedImage, dan kemudian gunakan ImageIO.write (), Sekarang semua orang mungkin ingin mendapatkan idea, tetapi jika kita bercakap tentang ajax, data yang diperoleh mungkin masih kucar-kacir! Tidak mengapa, saya akan perkenalkan kemudian.
Alat
Mula-mula buat alat untuk memuatkan imej, simpan alamat imej sebagai parameter dan dapatkan strim penimbal bagi imej ini:
/** * 根据图片的地址,返回图片的缓冲流 * @param addr * @return */ public static BufferedImage getInputStream(String addr){ try { String imgPath = addr; BufferedImage image = ImageIO.read(new FileInputStream(imgPath)); return image; } catch (Exception e) { e.printStackTrace(); System.out.println(); System.out.println("获取图片异常:java.awt.image.BufferedImage"); System.out.println("请检查图片路径是否正确,或者该地址是否为一个图片"); } return null; }
Ya, hanya gunakan ImageIO.read untuk memuatkan objek strim, dan kemudian kod untuk memproses kelas Inilah yang saya gunakan springMVC, springMVCSelama ini
Ia agak popular, jadi saya kurang menggunakan struts2
Kelas pemprosesan
/** * 根据图片的地址,来获取图片 * @param addr * @param response */ @ResponseBody @RequestMapping("/getImg") public void getImg(@Param("addr")String addr,HttpServletResponse response){ BufferedImage img = new BufferedImage(300, 150, BufferedImage.TYPE_INT_RGB); img = ImgUtil.getInputStream(addr); if(img==null){ throw new RuntimeException("打印图片异常:com.controller.Business_Ctrl.getImg(String, HttpServletResponse)"); } if(img!=null){ try { ImageIO.write(img, "JPEG", response.getOutputStream()); } catch (IOException e) { e.printStackTrace(); System.out.println("打印异常:com.controller.Business_Ctrl.getImg(String, HttpServletResponse)"); } } }
ImageIO.read() untuk membaca imej, gunakan ImageIO.write(), untuk mengeluarkan imej dan aliran input ialah
HttpServletResponse.getOutputStream()
Pelanggan
Berikut memperkenalkan cara menggunakan Ajax untuk mengosongkan js, css dan cache imej penyemak imbas dalam versi jquery 1.2.
jquery telah mempunyaiifModified dan cache parameter sejak versi 1.2, jadi anda tidak perlu menambah pengepala sendiri.
ifModified Boolean Default: false Allow the request to be successful only if the response has changed since the last request. This is done by checking the Last-Modified header. Default value is false, ignoring the header. cache Boolean Default: true Added in jQuery 1.2, if set to false it will force the pages that you request to not be cached by the browser. $.ajax({ type: "GET", url: "static/cache.js", dataType: "text", cache:false, ifModified :true });